OpenPKG CVS Repository
http://cvs.openpkg.org/
____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall
Root: /v/openpkg/cvs Email: [EMAIL PROTECTED]
Module: openpkg-src Date: 11-Jul-2007 23:05:17
Branch: HEAD Handle: 2007071122051600
Modified files:
openpkg-src/gettext gettext.patch gettext.spec
Log:
fix building with 64-bit GCC under Solaris 10/amd64 by using GCC's
__builtin_va_copy function
Summary:
Revision Changes Path
1.10 +117 -5 openpkg-src/gettext/gettext.patch
1.67 +2 -2 openpkg-src/gettext/gettext.spec
____________________________________________________________________________
patch -p0 <<'@@ .'
Index: openpkg-src/gettext/gettext.patch
============================================================================
$ cvs diff -u -r1.9 -r1.10 gettext.patch
--- openpkg-src/gettext/gettext.patch 27 Oct 2006 07:13:24 -0000 1.9
+++ openpkg-src/gettext/gettext.patch 11 Jul 2007 21:05:16 -0000 1.10
@@ -1,8 +1,7 @@
Index: gettext-tools/gnulib-lib/execute.c
-diff -Nau gettext-tools/gnulib-lib/execute.c.orig gettext-tools/lib/execute.c
---- gettext-tools/gnulib-lib/execute.c.orig 2004-05-26 16:36:08.000000000
+0200
-+++ gettext-tools/gnulib-lib/execute.c 2004-05-26 16:36:43.000000000
+0200
-@@ -194,6 +194,9 @@
+--- gettext-tools/gnulib-lib/execute.c.orig 2006-11-27 18:14:50 +0100
++++ gettext-tools/gnulib-lib/execute.c 2007-07-11 22:40:24 +0200
+@@ -193,6 +193,9 @@
dependent which error is reported which way. We treat both cases as
equivalent. */
#if HAVE_POSIX_SPAWN
@@ -12,4 +11,117 @@
sigset_t blocked_signals;
posix_spawn_file_actions_t actions;
bool actions_allocated;
-
+Index: gettext-tools/gnulib-lib/vasprintf.c
+--- gettext-tools/gnulib-lib/vasprintf.c.orig 2006-11-27 18:14:53
+0100
++++ gettext-tools/gnulib-lib/vasprintf.c 2007-07-11 22:40:24 +0200
+@@ -32,13 +32,14 @@
+ #endif
+
+ static int
+-int_vasprintf (char **result, const char *format, va_list *args)
++int_vasprintf (char **result, const char *format, va_list args)
+ {
+ const char *p = format;
+ /* Add one to make sure that it is never zero, which might cause malloc
+ to return NULL. */
+ size_t total_width = strlen (format) + 1;
+- va_list ap = *args;
++ va_list ap;
++ __builtin_va_copy(ap, args); /* GCC-specific to avoid Autoconf glue */
+
+ while (*p != '\0')
+ {
+@@ -112,7 +113,7 @@
+ #endif
+ *result = malloc (total_width);
+ if (*result != NULL)
+- return vsprintf (*result, format, *args);
++ return vsprintf (*result, format, args);
+ else
+ return -1;
+ }
+@@ -120,7 +121,7 @@
+ int
+ vasprintf (char **result, const char *format, va_list args)
+ {
+- return int_vasprintf (result, format, &args);
++ return int_vasprintf (result, format, args);
+ }
+
+ int
+Index: gettext-tools/libgettextpo/vasprintf.c
+--- gettext-tools/libgettextpo/vasprintf.c.orig 2006-11-27 18:15:09
+0100
++++ gettext-tools/libgettextpo/vasprintf.c 2007-07-11 22:41:59 +0200
+@@ -32,13 +32,14 @@
+ #endif
+
+ static int
+-int_vasprintf (char **result, const char *format, va_list *args)
++int_vasprintf (char **result, const char *format, va_list args)
+ {
+ const char *p = format;
+ /* Add one to make sure that it is never zero, which might cause malloc
+ to return NULL. */
+ size_t total_width = strlen (format) + 1;
+- va_list ap = *args;
++ va_list ap;
++ __builtin_va_copy(ap, args); /* GCC-specific to avoid Autoconf glue */
+
+ while (*p != '\0')
+ {
+@@ -112,7 +113,7 @@
+ #endif
+ *result = malloc (total_width);
+ if (*result != NULL)
+- return vsprintf (*result, format, *args);
++ return vsprintf (*result, format, args);
+ else
+ return -1;
+ }
+@@ -120,7 +121,7 @@
+ int
+ vasprintf (char **result, const char *format, va_list args)
+ {
+- return int_vasprintf (result, format, &args);
++ return int_vasprintf (result, format, args);
+ }
+
+ int
+Index: gnulib-local/lib/vasprintf.c
+--- gnulib-local/lib/vasprintf.c.orig 2006-09-15 14:01:51 +0200
++++ gnulib-local/lib/vasprintf.c 2007-07-11 22:40:24 +0200
+@@ -32,13 +32,14 @@
+ #endif
+
+ static int
+-int_vasprintf (char **result, const char *format, va_list *args)
++int_vasprintf (char **result, const char *format, va_list args)
+ {
+ const char *p = format;
+ /* Add one to make sure that it is never zero, which might cause malloc
+ to return NULL. */
+ size_t total_width = strlen (format) + 1;
+- va_list ap = *args;
++ va_list ap;
++ __builtin_va_copy(ap, args); /* GCC-specific to avoid Autoconf glue */
+
+ while (*p != '\0')
+ {
+@@ -112,7 +113,7 @@
+ #endif
+ *result = malloc (total_width);
+ if (*result != NULL)
+- return vsprintf (*result, format, *args);
++ return vsprintf (*result, format, args);
+ else
+ return -1;
+ }
+@@ -120,7 +121,7 @@
+ int
+ vasprintf (char **result, const char *format, va_list args)
+ {
+- return int_vasprintf (result, format, &args);
++ return int_vasprintf (result, format, args);
+ }
+
+ int
@@ .
patch -p0 <<'@@ .'
Index: openpkg-src/gettext/gettext.spec
============================================================================
$ cvs diff -u -r1.66 -r1.67 gettext.spec
--- openpkg-src/gettext/gettext.spec 1 Jan 2007 17:38:05 -0000 1.66
+++ openpkg-src/gettext/gettext.spec 11 Jul 2007 21:05:16 -0000 1.67
@@ -33,7 +33,7 @@
Group: Charset
License: GPL
Version: 0.16.1
-Release: 20061128
+Release: 20070711
# list of sources
Source0: ftp://ftp.gnu.org/gnu/gettext/gettext-%{version}.tar.gz
@@ -42,7 +42,7 @@
# build information
Prefix: %{l_prefix}
BuildRoot: %{l_buildroot}
-BuildPreReq: OpenPKG, openpkg >= 20040130, libiconv, make, automake
+BuildPreReq: OpenPKG, openpkg >= 20040130, libiconv, gcc, make, automake
PreReq: OpenPKG, openpkg >= 20040130, libiconv
AutoReq: no
AutoReqProv: no
@@ .
______________________________________________________________________
OpenPKG http://openpkg.org
CVS Repository Commit List [email protected]