Przeglądaj źródła

build: Use memcpy instead of assignment to copy va_list

It's more portable that way. Remove now unneeded check for working
assignment.
Guillem Jover 17 lat temu
rodzic
commit
7e8415be3f
2 zmienionych plików z 3 dodań i 11 usunięć
  1. 2 1
      lib/compat/compat.h
  2. 1 10
      m4/funcs.m4

+ 2 - 1
lib/compat/compat.h

@@ -44,7 +44,8 @@ extern "C" {
 #endif
 
 #ifndef HAVE_VA_COPY
-#define va_copy(dest, src) (dest) = (src)
+#include <string.h>
+#define va_copy(dest, src) memcpy(&(dest), &(src), sizeof(va_list))
 #endif
 
 #include <strnlen.h>

+ 1 - 10
m4/funcs.m4

@@ -19,16 +19,7 @@ exit (0);
 	[dpkg_cv_va_copy=no])])
 AS_IF([test "x$dpkg_cv_va_copy" = "xyes"],
 	[AC_DEFINE([HAVE_VA_COPY], 1,
-		  [Define to 1 if the 'va_copy' macro exists])],
-	[AC_CACHE_CHECK([for va_list assignment by copy],
-		       [dpkg_cv_va_list_copy],
-[AC_COMPILE_IFELSE([AC_LANG_PROGRAM(
-[[#include <stdarg.h>]],
-[[va_list v1, v2;
-v1 = v2;
-]])],
-		       [dpkg_cv_va_list_copy=yes],
-		       [dpkg_cv_va_list_copy=no])])])
+	           [Define to 1 if the 'va_copy' macro exists])])
 ])# DPKG_FUNC_VA_COPY
 
 # DPKG_CHECK_COMPAT_FUNCS(LIST)