summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorYaakov Selkowitz <yselkowitz@users.sourceforge.net>2011-10-31 18:30:19 -0500
committerYaakov Selkowitz <yselkowitz@users.sourceforge.net>2011-10-31 18:30:19 -0500
commit6a2a77d15b6dd1597edfd0696d413b7ef2cc6063 (patch)
tree546c9c9741f555ec3713ab773737d223955650b8
parenta1bf6de474db86218dc6f1aaf6394e09f43f4986 (diff)
downloadcygwin-libiconv-6a2a77d15b6dd1597edfd0696d413b7ef2cc6063.tar.gz
cygwin-libiconv-6a2a77d15b6dd1597edfd0696d413b7ef2cc6063.tar.xz
cygwin-libiconv-6a2a77d15b6dd1597edfd0696d413b7ef2cc6063.zip
cygwin-libiconv 1.14-2
-rw-r--r--cygwin-libiconv.spec9
-rw-r--r--libiconv-1.14-reloc.patch269
2 files changed, 276 insertions, 2 deletions
diff --git a/cygwin-libiconv.spec b/cygwin-libiconv.spec
index ef45950..c5a3e23 100644
--- a/cygwin-libiconv.spec
+++ b/cygwin-libiconv.spec
@@ -6,7 +6,7 @@
Name: cygwin-libiconv
Version: 1.14
-Release: 1
+Release: 2
Summary: GNU libraries and utilities for character set conversion
License: GPLv2+ and LGPLv2+
@@ -17,6 +17,7 @@ BuildArch: noarch
Source0: http://ftp.gnu.org/pub/gnu/libiconv/libiconv-%{version}.tar.gz
Patch0: libiconv-1.14-wchar.patch
+Patch1: libiconv-1.14-reloc.patch
BuildRequires: cygwin-filesystem >= 2
BuildRequires: cygwin-gcc
@@ -47,6 +48,7 @@ Static version of the Cygwin Iconv library.
%setup -q -n libiconv-%{version}
rm -f m4/libtool.m4 m4/lt*.m4
%patch0 -p2
+%patch1 -p2
autoreconf -f -i -v -I `pwd`/m4 -I `pwd`/srcm4
@@ -77,6 +79,7 @@ rm -f $RPM_BUILD_ROOT%{_cygwin_libdir}/*.la
# Remove unnecessary Cygwin native binaries
rm -f $RPM_BUILD_ROOT%{_cygwin_bindir}/*.exe
+rm -f $RPM_BUILD_ROOT%{_cygwin_libdir}/charset.alias
%clean
@@ -91,7 +94,6 @@ rm -rf $RPM_BUILD_ROOT
%{_cygwin_includedir}/iconv.h
%{_cygwin_includedir}/libcharset.h
%{_cygwin_includedir}/localcharset.h
-%{_cygwin_libdir}/charset.alias
%{_cygwin_libdir}/libcharset.dll.a
%{_cygwin_libdir}/libiconv.dll.a
@@ -102,6 +104,9 @@ rm -rf $RPM_BUILD_ROOT
%changelog
+* Mon Oct 31 2011 Yaakov Selkowitz <cygwin-ports-general@lists.sourceforge.net> - 1.14-2
+- Added relocation patch from Cygwin distro.
+
* Wed Aug 31 2011 Yaakov Selkowitz <cygwin-ports-general@lists.sourceforge.net> - 1.14-1
- Version bump.
diff --git a/libiconv-1.14-reloc.patch b/libiconv-1.14-reloc.patch
new file mode 100644
index 0000000..e1a1622
--- /dev/null
+++ b/libiconv-1.14-reloc.patch
@@ -0,0 +1,269 @@
+--- old/libiconv-1.14/lib/relocatable.c 2011-08-07 13:48:03.000000000 -0400
++++ new/libiconv-1.14/lib/relocatable.c 2011-10-15 03:14:13.195133600 -0400
+@@ -2,20 +2,18 @@
+ Copyright (C) 2003-2006, 2008-2011 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2003.
+
+- This program is free software; you can redistribute it and/or modify it
+- under the terms of the GNU Library General Public License as published
+- by the Free Software Foundation; either version 2, or (at your option)
+- any later version.
++ This program 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.
+
+ 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
+- Library General Public License for more details.
++ 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 Library 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. */
++ You should have received a copy of the GNU Lesser General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+
+ /* Tell glibc's <stdio.h> to provide a prototype for getline().
+@@ -87,6 +85,19 @@
+ # define FILE_SYSTEM_PREFIX_LEN(P) 0
+ #endif
+
++/* Whether to enable the more costly support for relocatable libraries.
++ It allows libraries to be have been installed with a different original
++ prefix than the program. But it is quite costly, especially on Cygwin
++ platforms, see below. Therefore we enable it by default only on native
++ Win32 platforms. */
++#ifndef ENABLE_COSTLY_RELOCATABLE
++# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
++# define ENABLE_COSTLY_RELOCATABLE 1
++# else
++# define ENABLE_COSTLY_RELOCATABLE 0
++# endif
++#endif
++
+ /* Original installation prefix. */
+ static char *orig_prefix;
+ static size_t orig_prefix_len;
+@@ -156,7 +167,7 @@
+ #endif
+ }
+
+-#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR)
++#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE)
+
+ /* Convenience function:
+ Computes the current installation prefix, based on the original
+@@ -286,7 +297,7 @@
+
+ #endif /* !IN_LIBRARY || PIC */
+
+-#if defined PIC && defined INSTALLDIR
++#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE
+
+ /* Full pathname of shared library, or NULL. */
+ static char *shared_library_fullname;
+@@ -332,7 +343,9 @@
+ #if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__
+ /* Linux has /proc/self/maps. glibc 2 and uClibc have the getline()
+ function.
+- Cygwin >= 1.5 has /proc/self/maps and the getline() function too. */
++ Cygwin >= 1.5 has /proc/self/maps and the getline() function too.
++ But it is costly: ca. 0.3 ms on Linux, 3 ms on Cygwin 1.5, and 5 ms on
++ Cygwin 1.7. */
+ FILE *fp;
+
+ /* Open the current process' maps file. It describes one VMA per line. */
+@@ -405,7 +418,7 @@
+ const char *
+ relocate (const char *pathname)
+ {
+-#if defined PIC && defined INSTALLDIR
++#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE
+ static int initialized;
+
+ /* Initialization code for a shared library. */
+--- old/libiconv-1.14/libcharset/lib/relocatable.c 2011-08-07 13:48:03.000000000 -0400
++++ new/libiconv-1.14/libcharset/lib/relocatable.c 2011-10-15 03:14:27.878133600 -0400
+@@ -2,20 +2,18 @@
+ Copyright (C) 2003-2006, 2008-2011 Free Software Foundation, Inc.
+ Written by Bruno Haible <bruno@clisp.org>, 2003.
+
+- This program is free software; you can redistribute it and/or modify it
+- under the terms of the GNU Library General Public License as published
+- by the Free Software Foundation; either version 2, or (at your option)
+- any later version.
++ This program 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.
+
+ 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
+- Library General Public License for more details.
++ 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 Library 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. */
++ You should have received a copy of the GNU Lesser General Public License
++ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+
+ /* Tell glibc's <stdio.h> to provide a prototype for getline().
+@@ -87,6 +85,19 @@
+ # define FILE_SYSTEM_PREFIX_LEN(P) 0
+ #endif
+
++/* Whether to enable the more costly support for relocatable libraries.
++ It allows libraries to be have been installed with a different original
++ prefix than the program. But it is quite costly, especially on Cygwin
++ platforms, see below. Therefore we enable it by default only on native
++ Win32 platforms. */
++#ifndef ENABLE_COSTLY_RELOCATABLE
++# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
++# define ENABLE_COSTLY_RELOCATABLE 1
++# else
++# define ENABLE_COSTLY_RELOCATABLE 0
++# endif
++#endif
++
+ /* Original installation prefix. */
+ static char *orig_prefix;
+ static size_t orig_prefix_len;
+@@ -156,7 +167,7 @@
+ #endif
+ }
+
+-#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR)
++#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE)
+
+ /* Convenience function:
+ Computes the current installation prefix, based on the original
+@@ -286,7 +297,7 @@
+
+ #endif /* !IN_LIBRARY || PIC */
+
+-#if defined PIC && defined INSTALLDIR
++#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE
+
+ /* Full pathname of shared library, or NULL. */
+ static char *shared_library_fullname;
+@@ -332,7 +343,9 @@
+ #if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__
+ /* Linux has /proc/self/maps. glibc 2 and uClibc have the getline()
+ function.
+- Cygwin >= 1.5 has /proc/self/maps and the getline() function too. */
++ Cygwin >= 1.5 has /proc/self/maps and the getline() function too.
++ But it is costly: ca. 0.3 ms on Linux, 3 ms on Cygwin 1.5, and 5 ms on
++ Cygwin 1.7. */
+ FILE *fp;
+
+ /* Open the current process' maps file. It describes one VMA per line. */
+@@ -405,7 +418,7 @@
+ const char *
+ relocate (const char *pathname)
+ {
+-#if defined PIC && defined INSTALLDIR
++#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE
+ static int initialized;
+
+ /* Initialization code for a shared library. */
+--- old/libiconv-1.14/srclib/relocatable.c 2011-08-07 09:42:06.000000000 -0400
++++ new/libiconv-1.14/srclib/relocatable.c 2011-10-15 03:14:37.739133600 -0400
+@@ -3,16 +3,16 @@
+ Written by Bruno Haible <bruno@clisp.org>, 2003.
+
+ 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 3 of the License, or
++ 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.
+
+ 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.
++ GNU Lesser General Public License for more details.
+
+- You should have received a copy of the GNU General Public License
++ You should have received a copy of the GNU Lesser General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+
+@@ -85,6 +85,19 @@
+ # define FILE_SYSTEM_PREFIX_LEN(P) 0
+ #endif
+
++/* Whether to enable the more costly support for relocatable libraries.
++ It allows libraries to be have been installed with a different original
++ prefix than the program. But it is quite costly, especially on Cygwin
++ platforms, see below. Therefore we enable it by default only on native
++ Win32 platforms. */
++#ifndef ENABLE_COSTLY_RELOCATABLE
++# if (defined _WIN32 || defined __WIN32__) && !defined __CYGWIN__
++# define ENABLE_COSTLY_RELOCATABLE 1
++# else
++# define ENABLE_COSTLY_RELOCATABLE 0
++# endif
++#endif
++
+ /* Original installation prefix. */
+ static char *orig_prefix;
+ static size_t orig_prefix_len;
+@@ -154,7 +167,7 @@
+ #endif
+ }
+
+-#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR)
++#if !defined IN_LIBRARY || (defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE)
+
+ /* Convenience function:
+ Computes the current installation prefix, based on the original
+@@ -284,7 +297,7 @@
+
+ #endif /* !IN_LIBRARY || PIC */
+
+-#if defined PIC && defined INSTALLDIR
++#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE
+
+ /* Full pathname of shared library, or NULL. */
+ static char *shared_library_fullname;
+@@ -330,7 +343,9 @@
+ #if (defined __linux__ && (__GLIBC__ >= 2 || defined __UCLIBC__)) || defined __CYGWIN__
+ /* Linux has /proc/self/maps. glibc 2 and uClibc have the getline()
+ function.
+- Cygwin >= 1.5 has /proc/self/maps and the getline() function too. */
++ Cygwin >= 1.5 has /proc/self/maps and the getline() function too.
++ But it is costly: ca. 0.3 ms on Linux, 3 ms on Cygwin 1.5, and 5 ms on
++ Cygwin 1.7. */
+ FILE *fp;
+
+ /* Open the current process' maps file. It describes one VMA per line. */
+@@ -403,7 +418,7 @@
+ const char *
+ relocate (const char *pathname)
+ {
+-#if defined PIC && defined INSTALLDIR
++#if defined PIC && defined INSTALLDIR && ENABLE_COSTLY_RELOCATABLE
+ static int initialized;
+
+ /* Initialization code for a shared library. */
+--- origsrc/libiconv-1.14/srcm4/gnulib-comp.m4 2011-08-07 09:42:12.000000000 -0400
++++ src/libiconv-1.14/srcm4/gnulib-comp.m4 2011-08-30 02:40:45.597317000 -0400
+@@ -164,6 +164,7 @@ gl_UNISTD_MODULE_INDICATOR([readlink])
+ gl_RELOCATABLE([$gl_source_base])
+ if test $RELOCATABLE = yes; then
+ AC_LIBOBJ([progreloc])
++ AC_LIBOBJ([relocatable])
+ fi
+ gl_FUNC_READLINK_SEPARATE
+ gl_CANONICALIZE_LGPL_SEPARATE