diff mbox

SV: [PATCH 10/18] libiconv: Fix multiple issues with darwin/mingw32 compilation

Message ID BD22328D0EB182418C2A0952DC2454F88086FE6B@VMPREVAS2.prevas.se
State Not Applicable
Headers show

Commit Message

kim.hansen@prevas.dk Jan. 5, 2015, 2:48 p.m. UTC
Hi Yann,

I need some more explanation for these patches. I seems a bit dangerous to change from running a specific version of autotools to just running the default. 

Could you re-submit with patch headers and some info about what problem the autogen and inline patch is fixing?

/Kim
diff mbox

Patch

diff --git a/recipes/libiconv/files/gets-undefined-in-C11.patch b/recipes/libiconv/files/gets-undefined-in-C11.patch
deleted file mode 100644
index a1e127a..0000000
--- a/recipes/libiconv/files/gets-undefined-in-C11.patch
+++ /dev/null
@@ -1,28 +0,0 @@ 
---- libiconv-1.14.orig/srclib/stdio.in.h       2011-08-07 13:42:06.000000000 +0000
-+++ libiconv-1.14/srclib/stdio.in.h    2013-01-09 19:56:21.115819812 +0000
-@@ -680,22 +680,7 @@
- #endif
-
- #if @GNULIB_GETS@
--# if @REPLACE_STDIO_READ_FUNCS@ && @GNULIB_STDIO_H_NONBLOCKING@
--#  if !(defined __cplusplus && defined GNULIB_NAMESPACE)
--#   undef gets
--#   define gets rpl_gets
--#  endif
--_GL_FUNCDECL_RPL (gets, char *, (char *s) _GL_ARG_NONNULL ((1)));
--_GL_CXXALIAS_RPL (gets, char *, (char *s));
--# else
--_GL_CXXALIAS_SYS (gets, char *, (char *s));
--#  undef gets
--# endif
--_GL_CXXALIASWARN (gets);
--/* It is very rare that the developer ever has full control of stdin,
--   so any use of gets warrants an unconditional warning.  Assume it is
--   always declared, since it is required by C89.  */
--_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
-+#undef gets
- #endif
-
-
-
-Diff finished.  Wed Jan  9 19:56:44 2013
diff --git a/recipes/libiconv/libiconv-1.14/autogen.patch b/recipes/libiconv/libiconv-1.14/autogen.patch
new file mode 100644
index 0000000..9a64831
--- /dev/null
+++ b/recipes/libiconv/libiconv-1.14/autogen.patch
@@ -0,0 +1,73 @@ 
+diff -urN a/configure.ac b/configure.ac
+--- a/configure.ac     2011-08-07 19:48:03.000000000 +0200
++++ b/configure.ac     2013-10-24 18:22:16.480927244 +0200
+@@ -77,7 +77,7 @@
+
+ dnl           check for build configuration
+
+-LT_INIT([disable-static win32-dll])
++LT_INIT([win32-dll])
+
+ dnl Prepares the libtool configuration for handling of Windows resources, and
+ dnl sets the RC variable to a program that compiles Windows resource files.
+diff -urN a/libcharset/Makefile.devel b/libcharset/Makefile.devel
+--- a/libcharset/Makefile.devel        2010-09-24 01:28:15.000000000 +0200
++++ b/libcharset/Makefile.devel        2013-10-24 13:24:50.772404495 +0200
+@@ -3,9 +3,9 @@
+
+ SHELL = /bin/sh
+ MAKE = make
+-AUTOCONF = autoconf-2.68
+-AUTOHEADER = autoheader-2.68
+-ACLOCAL = aclocal-1.11
++AUTOCONF = autoconf
++AUTOHEADER = autoheader
++ACLOCAL = aclocal
+ CP = cp
+ RM = rm -f
+
+diff -urN a/Makefile.devel b/Makefile.devel
+--- a/Makefile.devel   2011-07-03 16:05:11.000000000 +0200
++++ b/Makefile.devel   2013-10-24 13:24:27.897095134 +0200
+@@ -4,10 +4,10 @@
+
+ SHELL = /bin/sh
+ MAKE = make
+-AUTOCONF = autoconf-2.68
+-AUTOHEADER = autoheader-2.68
+-AUTOMAKE = automake-1.11
+-ACLOCAL = aclocal-1.11
++AUTOCONF = autoconf
++AUTOHEADER = autoheader
++AUTOMAKE = automake
++ACLOCAL = aclocal
+ GPERF = gperf
+ CC = gcc
+ CFLAGS = -O
+diff -urN a/preload/Makefile.devel b/preload/Makefile.devel
+--- a/preload/Makefile.devel   2010-09-24 01:29:30.000000000 +0200
++++ b/preload/Makefile.devel   2013-10-24 13:24:39.860732810 +0200
+@@ -3,8 +3,8 @@
+
+ SHELL = /bin/sh
+ MAKE = make
+-AUTOCONF = autoconf-2.68
+-ACLOCAL = aclocal-1.11
++AUTOCONF = autoconf
++ACLOCAL = aclocal
+ CP = cp
+ RM = rm -f
+
+diff -urN a/srcm4/gnulib-common.m4 b/srcm4/gnulib-common.m4
+--- a/srcm4/gnulib-common.m4   2011-08-07 15:42:07.000000000 +0200
++++ b/srcm4/gnulib-common.m4   2013-10-24 18:46:05.129028726 +0200
+@@ -231,8 +231,8 @@
+      RANLIB=':'
+     ],
+     [dnl Use the Automake-documented default values for AR and ARFLAGS.
+-     AR='ar'
+      ARFLAGS='cru'
++     _LT_PROG_AR
+      dnl Use the ranlib program if it is available.
+      AC_PROG_RANLIB
+     ])
diff --git a/recipes/libiconv/libiconv-1.14/inline.patch b/recipes/libiconv/libiconv-1.14/inline.patch
new file mode 100644
index 0000000..339948c
--- /dev/null
+++ b/recipes/libiconv/libiconv-1.14/inline.patch
@@ -0,0 +1,11 @@ 
+diff -urN a/lib/iconv.c b/lib/iconv.c
+--- a/lib/iconv.c      2011-01-29 18:28:09.000000000 +0100
++++ b/lib/iconv.c      2014-05-06 01:13:32.156622720 +0200
+@@ -176,6 +176,7 @@
+ #include "aliases2.h"
+ #undef S
+ };
++static
+ #ifdef __GNUC__
+ __inline
+ #endif
diff --git a/recipes/libiconv/libiconv-1.14/libiconv-glibc-2.16.patch b/recipes/libiconv/libiconv-1.14/libiconv-glibc-2.16.patch
new file mode 100644
index 0000000..3dc4613
--- /dev/null
+++ b/recipes/libiconv/libiconv-1.14/libiconv-glibc-2.16.patch
@@ -0,0 +1,16 @@ 
+diff -urN a/srclib/stdio.in.h b/srclib/stdio.in.h
+--- a/srclib/stdio.in.h        2011-08-07 15:42:06.000000000 +0200
++++ b/srclib/stdio.in.h        2013-10-06 22:49:28.643216186 +0200
+@@ -695,7 +695,11 @@
+ /* It is very rare that the developer ever has full control of stdin,
+    so any use of gets warrants an unconditional warning.  Assume it is
+    always declared, since it is required by C89.  */
+-_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#if defined(__GLIBC__) && !defined(__UCLIBC__) && defined(__GLIBC_PREREQ)
++#if !__GLIBC_PREREQ(2, 16)
++ _GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead");
++#endif
++#endif
+ #endif
+
+
diff --git a/recipes/libiconv/libiconv.inc b/recipes/libiconv/libiconv.inc
index 07ca6f3..4bb0bcf 100644
--- a/recipes/libiconv/libiconv.inc
+++ b/recipes/libiconv/libiconv.inc
@@ -8,9 +8,13 @@  RECIPE_TYPES = "machine native sdk"

 SRC_URI = "ftp://ftp.gnu.org/pub/gnu/libiconv/libiconv-${PV}.tar.gz"

-inherit library autotools
+inherit library autotools-autoreconf

-EXTRA_OECONF += "--enable-shared --enable-static --disable-rpath"
+do_autoreconf () {
+  sh ./autogen.sh --skip-gnulib
+}
+
+EXTRA_OECONF += "--disable-rpath"

 inherit auto-package-libs
 AUTO_PACKAGE_LIBS = "charset"
diff --git a/recipes/libiconv/libiconv_1.14.oe b/recipes/libiconv/libiconv_1.14.oe
index 4a6b502..92d4663 100644
--- a/recipes/libiconv/libiconv_1.14.oe
+++ b/recipes/libiconv/libiconv_1.14.oe
@@ -1,8 +1,7 @@ 
 require libiconv.inc

-LICENSE = "GPL-3.0 & LGPL-2.0"
-
-SRC_URI += "file://gets-undefined-in-C11.patch"
+SRC_URI += "file://libiconv-glibc-2.16.patch"
+SRC_URI += "file://autogen.patch"
+SRC_URI += "file://inline.patch"

-SRC_URI:>HOST_LIBC_mingw = " file://libtool-bindir.patch"
-export sharedlibdir
+LICENSE = "GPL-3.0 & LGPL-2.0"