[arch-commits] CVS update of core/devel/libtool (2 files)
Jan de Groot
jgc at archlinux.org
Thu Mar 13 23:18:51 UTC 2008
Date: Thursday, March 13, 2008 @ 19:18:51
Author: jgc
Path: /home/cvs-core/core/devel/libtool
Added: libtool-2.2-regressions.patch (1.1)
Modified: PKGBUILD (1.34 -> 1.35)
upgpkg: libtool 2.2-2
Add patches from CVS to fix regressions with libtool 2.2. Fixes segfaults in libgphoto
-------------------------------+
PKGBUILD | 14 -
libtool-2.2-regressions.patch | 406 ++++++++++++++++++++++++++++++++++++++++
2 files changed, 414 insertions(+), 6 deletions(-)
Index: core/devel/libtool/PKGBUILD
diff -u core/devel/libtool/PKGBUILD:1.34 core/devel/libtool/PKGBUILD:1.35
--- core/devel/libtool/PKGBUILD:1.34 Sun Mar 2 14:33:44 2008
+++ core/devel/libtool/PKGBUILD Thu Mar 13 19:18:51 2008
@@ -1,21 +1,23 @@
-# $Id: PKGBUILD,v 1.34 2008/03/02 19:33:44 andyrtr Exp $
+# $Id: PKGBUILD,v 1.35 2008/03/13 23:18:51 jgc Exp $
# Maintainer: judd <jvinet at zeroflux.org>
pkgname=libtool
pkgver=2.2
-pkgrel=1
+pkgrel=2
pkgdesc="A generic library support script"
arch=(i686 x86_64)
license=('GPL')
url="http://www.gnu.org/software/libtool"
groups=('base-devel')
depends=('sh')
-source=(ftp://ftp.gnu.org/pub/gnu/libtool/$pkgname-$pkgver.tar.gz)
-md5sums=('217e9ec3e3cbdf891cbd4772140964a1')
+source=(ftp://ftp.gnu.org/pub/gnu/libtool/${pkgname}-${pkgver}.tar.gz
+ libtool-2.2-regressions.patch)
+md5sums=('217e9ec3e3cbdf891cbd4772140964a1' '99298e18b12033fc0eac5e5af16add3e')
options=('!libtool')
build() {
- cd $startdir/src/$pkgname-$pkgver
+ cd ${startdir}/src/${pkgname}-${pkgver}
+ patch -Np0 -i ${startdir}/src/libtool-2.2-regressions.patch || return 1
./configure --prefix=/usr
make || return 1
- make DESTDIR=$startdir/pkg install
+ make DESTDIR=${startdir}/pkg install
}
Index: core/devel/libtool/libtool-2.2-regressions.patch
diff -u /dev/null core/devel/libtool/libtool-2.2-regressions.patch:1.1
--- /dev/null Thu Mar 13 19:18:51 2008
+++ core/devel/libtool/libtool-2.2-regressions.patch Thu Mar 13 19:18:51 2008
@@ -0,0 +1,406 @@
+--- libltdl/config/ltmain.m4sh 2008/01/28 15:49:46 1.97
++++ libltdl/config/ltmain.m4sh 2008/03/04 21:25:48 1.98
+@@ -1694,12 +1694,14 @@
+ # 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
+- # Transform arg to wrapped name.
+- file="$progdir/$program"
+ ;;
+ esac
+ # Quote arguments (to preserve shell metacharacters).
+@@ -2468,7 +2470,7 @@
+ ;;
+ esac
+ $ECHO "\
+- \$ECHO \"\$0: cannot exec \$program \$*\"
++ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+ exit 1
+ fi
+ else
+--- libltdl/loaders/dld_link.c 2007/05/08 14:38:50 1.9
++++ libltdl/loaders/dld_link.c 2008/03/04 21:00:18 1.10
+@@ -1,7 +1,7 @@
+ /* loader-dld_link.c -- dynamic linking with dld
+
+ Copyright (C) 1998, 1999, 2000, 2004, 2006,
+- 2007 Free Software Foundation, Inc.
++ 2007, 2008 Free Software Foundation, Inc.
+ Written by Thomas Tanner, 1998
+
+ NOTE: The canonical source of this file is maintained with the
+@@ -45,20 +45,21 @@
+
+ /* Boilerplate code to set up the vtable for hooking this loader into
+ libltdl's loader list: */
++static int vl_exit (lt_user_data loader_data);
+ static lt_module vm_open (lt_user_data loader_data, const char *filename,
+ lt_dladvise advise);
+ static int vm_close (lt_user_data loader_data, lt_module module);
+ static void * vm_sym (lt_user_data loader_data, lt_module module,
+ const char *symbolname);
+
++static lt_dlvtable *vtable = 0;
++
+ /* Return the vtable for this loader, only the name and sym_prefix
+ attributes (plus the virtual function implementations, obviously)
+ change between loaders. */
+ lt_dlvtable *
+ get_vtable (lt_user_data loader_data)
+ {
+- static lt_dlvtable *vtable = 0;
+-
+ if (!vtable)
+ {
+ vtable = lt__zalloc (sizeof *vtable);
+@@ -70,6 +71,7 @@
+ vtable->module_open = vm_open;
+ vtable->module_close = vm_close;
+ vtable->find_sym = vm_sym;
++ vtable->dlloader_exit = vl_exit;
+ vtable->dlloader_data = loader_data;
+ vtable->priority = LT_DLLOADER_APPEND;
+ }
+@@ -92,6 +94,15 @@
+ # include <dld.h>
+ #endif
+
++/* A function called through the vtable when this loader is no
++ longer needed by the application. */
++static int
++vl_exit (lt_user_data LT__UNUSED loader_data)
++{
++ vtable = NULL;
++ return 0;
++}
++
+ /* A function called through the vtable to open a module with this
+ loader. Returns an opaque representation of the newly opened
+ module for processing with this loader's other vtable functions. */
+--- libltdl/loaders/dlopen.c 2008/01/12 17:00:51 1.12
++++ libltdl/loaders/dlopen.c 2008/03/04 21:00:18 1.13
+@@ -45,20 +45,21 @@
+
+ /* Boilerplate code to set up the vtable for hooking this loader into
+ libltdl's loader list: */
++static int vl_exit (lt_user_data loader_data);
+ static lt_module vm_open (lt_user_data loader_data, const char *filename,
+ lt_dladvise advise);
+ static int vm_close (lt_user_data loader_data, lt_module module);
+ static void * vm_sym (lt_user_data loader_data, lt_module module,
+ const char *symbolname);
+
++static lt_dlvtable *vtable = 0;
++
+ /* Return the vtable for this loader, only the name and sym_prefix
+ attributes (plus the virtual function implementations, obviously)
+ change between loaders. */
+ lt_dlvtable *
+ get_vtable (lt_user_data loader_data)
+ {
+- static lt_dlvtable *vtable = 0;
+-
+ if (!vtable)
+ {
+ vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable);
+@@ -73,6 +74,7 @@
+ vtable->module_open = vm_open;
+ vtable->module_close = vm_close;
+ vtable->find_sym = vm_sym;
++ vtable->dlloader_exit = vl_exit;
+ vtable->dlloader_data = loader_data;
+ vtable->priority = LT_DLLOADER_PREPEND;
+ }
+@@ -146,6 +148,17 @@
+ #define DL__SETERROR(errorcode) \
+ LT__SETERRORSTR (DLERROR (errorcode))
+
++
++/* A function called through the vtable when this loader is no
++ longer needed by the application. */
++static int
++vl_exit (lt_user_data LT__UNUSED loader_data)
++{
++ vtable = NULL;
++ return 0;
++}
++
++
+ /* A function called through the vtable to open a module with this
+ loader. Returns an opaque representation of the newly opened
+ module for processing with this loader's other vtable functions. */
+--- libltdl/loaders/dyld.c 2007/07/04 23:05:05 1.9
++++ libltdl/loaders/dyld.c 2008/03/04 21:00:18 1.10
+@@ -1,7 +1,7 @@
+ /* loader-dyld.c -- dynamic linking on darwin and OS X
+
+ Copyright (C) 1998, 1999, 2000, 2004, 2006,
+- 2007 Free Software Foundation, Inc.
++ 2007, 2008 Free Software Foundation, Inc.
+ Written by Peter O'Gorman, 1998
+
+ NOTE: The canonical source of this file is maintained with the
+@@ -53,14 +53,14 @@
+ static void * vm_sym (lt_user_data loader_data, lt_module module,
+ const char *symbolname);
+
++static lt_dlvtable *vtable = 0;
++
+ /* Return the vtable for this loader, only the name and sym_prefix
+ attributes (plus the virtual function implementations, obviously)
+ change between loaders. */
+ lt_dlvtable *
+ get_vtable (lt_user_data loader_data)
+ {
+- static lt_dlvtable *vtable = 0;
+-
+ if (!vtable)
+ {
+ vtable = lt__zalloc (sizeof *vtable);
+@@ -74,6 +74,7 @@
+ vtable->module_open = vm_open;
+ vtable->module_close = vm_close;
+ vtable->find_sym = vm_sym;
++ vtable->dlloader_exit = vl_exit;
+ vtable->dlloader_data = loader_data;
+ vtable->priority = LT_DLLOADER_APPEND;
+ }
+@@ -181,6 +182,15 @@
+ static int dyld_cannot_close = 0;
+
+
++/* A function called through the vtable when this loader is no
++ longer needed by the application. */
++static int
++vl_exit (lt_user_data LT__UNUSED loader_data)
++{
++ vtable = NULL;
++ return 0;
++}
++
+ /* A function called through the vtable to initialise this loader. */
+ static int
+ vl_init (lt_user_data loader_data)
+--- libltdl/loaders/load_add_on.c 2007/05/08 14:38:50 1.9
++++ libltdl/loaders/load_add_on.c 2008/03/04 21:00:18 1.10
+@@ -1,7 +1,7 @@
+ /* loader-load_add_on.c -- dynamic linking for BeOS
+
+ Copyright (C) 1998, 1999, 2000, 2004, 2006,
+- 2007 Free Software Foundation, Inc.
++ 2007, 2008 Free Software Foundation, Inc.
+ Written by Thomas Tanner, 1998
+
+ NOTE: The canonical source of this file is maintained with the
+@@ -45,20 +45,21 @@
+
+ /* Boilerplate code to set up the vtable for hooking this loader into
+ libltdl's loader list: */
++static int vl_exit (lt_user_data loader_data);
+ static lt_module vm_open (lt_user_data loader_data, const char *filename,
+ lt_dladvise advise);
+ static int vm_close (lt_user_data loader_data, lt_module module);
+ static void * vm_sym (lt_user_data loader_data, lt_module module,
+ const char *symbolname);
+
++static lt_dlvtable *vtable = 0;
++
+ /* Return the vtable for this loader, only the name and sym_prefix
+ attributes (plus the virtual function implementations, obviously)
+ change between loaders. */
+ lt_dlvtable *
+ get_vtable (lt_user_data loader_data)
+ {
+- static lt_dlvtable *vtable = 0;
+-
+ if (!vtable)
+ {
+ vtable = lt__zalloc (sizeof *vtable);
+@@ -70,6 +71,7 @@
+ vtable->module_open = vm_open;
+ vtable->module_close = vm_close;
+ vtable->find_sym = vm_sym;
++ vtable->dlloader_exit = vl_exit;
+ vtable->dlloader_data = loader_data;
+ vtable->priority = LT_DLLOADER_APPEND;
+ }
+@@ -90,6 +92,15 @@
+
+ #include <kernel/image.h>
+
++/* A function called through the vtable when this loader is no
++ longer needed by the application. */
++static int
++vl_exit (lt_user_data LT__UNUSED loader_data)
++{
++ vtable = NULL;
++ return 0;
++}
++
+ /* A function called through the vtable to open a module with this
+ loader. Returns an opaque representation of the newly opened
+ module for processing with this loader's other vtable functions. */
+--- libltdl/loaders/loadlibrary.c 2007/05/08 14:38:50 1.15
++++ libltdl/loaders/loadlibrary.c 2008/03/04 21:00:19 1.16
+@@ -1,7 +1,7 @@
+ /* loader-loadlibrary.c -- dynamic linking for Win32
+
+ Copyright (C) 1998, 1999, 2000, 2004, 2005, 2006,
+- 2007 Free Software Foundation, Inc.
++ 2007, 2008 Free Software Foundation, Inc.
+ Written by Thomas Tanner, 1998
+
+ NOTE: The canonical source of this file is maintained with the
+@@ -49,6 +49,7 @@
+
+ /* Boilerplate code to set up the vtable for hooking this loader into
+ libltdl's loader list: */
++static int vl_exit (lt_user_data loader_data);
+ static lt_module vm_open (lt_user_data loader_data, const char *filename,
+ lt_dladvise advise);
+ static int vm_close (lt_user_data loader_data, lt_module module);
+@@ -56,6 +57,7 @@
+ const char *symbolname);
+
+ static lt_dlinterface_id iface_id = 0;
++static lt_dlvtable *vtable = 0;
+
+ /* Return the vtable for this loader, only the name and sym_prefix
+ attributes (plus the virtual function implementations, obviously)
+@@ -63,8 +65,6 @@
+ lt_dlvtable *
+ get_vtable (lt_user_data loader_data)
+ {
+- static lt_dlvtable *vtable = 0;
+-
+ if (!vtable)
+ {
+ vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable);
+@@ -77,6 +77,7 @@
+ vtable->module_open = vm_open;
+ vtable->module_close = vm_close;
+ vtable->find_sym = vm_sym;
++ vtable->dlloader_exit = vl_exit;
+ vtable->dlloader_data = loader_data;
+ vtable->priority = LT_DLLOADER_APPEND;
+ }
+@@ -97,6 +98,15 @@
+
+ #include <windows.h>
+
++/* A function called through the vtable when this loader is no
++ longer needed by the application. */
++static int
++vl_exit (lt_user_data LT__UNUSED loader_data)
++{
++ vtable = NULL;
++ return 0;
++}
++
+ /* A function called through the vtable to open a module with this
+ loader. Returns an opaque representation of the newly opened
+ module for processing with this loader's other vtable functions. */
+--- libltdl/loaders/preopen.c 2007/08/30 18:39:10 1.16
++++ libltdl/loaders/preopen.c 2008/03/04 21:00:19 1.17
+@@ -1,7 +1,7 @@
+ /* loader-preopen.c -- emulate dynamic linking using preloaded_symbols
+
+ Copyright (C) 1998, 1999, 2000, 2004, 2006,
+- 2007 Free Software Foundation, Inc.
++ 2007, 2008 Free Software Foundation, Inc.
+ Written by Thomas Tanner, 1998
+
+ NOTE: The canonical source of this file is maintained with the
+@@ -53,14 +53,14 @@
+ static void * vm_sym (lt_user_data loader_data, lt_module module,
+ const char *symbolname);
+
++static lt_dlvtable *vtable = 0;
++
+ /* Return the vtable for this loader, only the name and sym_prefix
+ attributes (plus the virtual function implementations, obviously)
+ change between loaders. */
+ lt_dlvtable *
+ get_vtable (lt_user_data loader_data)
+ {
+- static lt_dlvtable *vtable = 0;
+-
+ if (!vtable)
+ {
+ vtable = (lt_dlvtable *) lt__zalloc (sizeof *vtable);
+@@ -132,6 +132,7 @@
+ static int
+ vl_exit (lt_user_data LT__UNUSED loader_data)
+ {
++ vtable = NULL;
+ free_symlists ();
+ return 0;
+ }
+--- libltdl/loaders/shl_load.c 2007/05/08 14:38:50 1.10
++++ libltdl/loaders/shl_load.c 2008/03/04 21:00:19 1.11
+@@ -1,7 +1,7 @@
+ /* loader-shl_load.c -- dynamic linking with shl_load (HP-UX)
+
+ Copyright (C) 1998, 1999, 2000, 2004, 2006,
+- 2007 Free Software Foundation, Inc.
++ 2007, 2008 Free Software Foundation, Inc.
+ Written by Thomas Tanner, 1998
+
+ NOTE: The canonical source of this file is maintained with the
+@@ -45,20 +45,21 @@
+
+ /* Boilerplate code to set up the vtable for hooking this loader into
+ libltdl's loader list: */
++static int vl_exit (lt_user_data loader_data);
+ static lt_module vm_open (lt_user_data loader_data, const char *filename,
+ lt_dladvise advise);
+ static int vm_close (lt_user_data loader_data, lt_module module);
+ static void * vm_sym (lt_user_data loader_data, lt_module module,
+ const char *symbolname);
+
++static lt_dlvtable *vtable = 0;
++
+ /* Return the vtable for this loader, only the name and sym_prefix
+ attributes (plus the virtual function implementations, obviously)
+ change between loaders. */
+ lt_dlvtable *
+ get_vtable (lt_user_data loader_data)
+ {
+- static lt_dlvtable *vtable = 0;
+-
+ if (!vtable)
+ {
+ vtable = lt__zalloc (sizeof *vtable);
+@@ -70,6 +71,7 @@
+ vtable->module_open = vm_open;
+ vtable->module_close = vm_close;
+ vtable->find_sym = vm_sym;
++ vtable->dlloader_exit = vl_exit;
+ vtable->dlloader_data = loader_data;
+ vtable->priority = LT_DLLOADER_APPEND;
+ }
+@@ -133,6 +135,15 @@
+ #define LT_BIND_FLAGS (BIND_IMMEDIATE | BIND_NONFATAL | DYNAMIC_PATH)
+
+
++/* A function called through the vtable when this loader is no
++ longer needed by the application. */
++static int
++vl_exit (lt_user_data LT__UNUSED loader_data)
++{
++ vtable = NULL;
++ return 0;
++}
++
+ /* A function called through the vtable to open a module with this
+ loader. Returns an opaque representation of the newly opened
+ module for processing with this loader's other vtable functions. */
+
More information about the arch-commits
mailing list