diff options
author | Yaakov Selkowitz <yselkowitz@users.sourceforge.net> | 2011-10-31 18:30:19 -0500 |
---|---|---|
committer | Yaakov Selkowitz <yselkowitz@users.sourceforge.net> | 2011-10-31 18:30:19 -0500 |
commit | 6a2a77d15b6dd1597edfd0696d413b7ef2cc6063 (patch) | |
tree | 546c9c9741f555ec3713ab773737d223955650b8 | |
parent | a1bf6de474db86218dc6f1aaf6394e09f43f4986 (diff) | |
download | cygwin-libiconv-6a2a77d15b6dd1597edfd0696d413b7ef2cc6063.tar.gz cygwin-libiconv-6a2a77d15b6dd1597edfd0696d413b7ef2cc6063.tar.xz cygwin-libiconv-6a2a77d15b6dd1597edfd0696d413b7ef2cc6063.zip |
cygwin-libiconv 1.14-2
-rw-r--r-- | cygwin-libiconv.spec | 9 | ||||
-rw-r--r-- | libiconv-1.14-reloc.patch | 269 |
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 |