[git] GPG-ERROR - branch, master, updated. libgpg-error-1.13-7-g3325403

by Werner Koch cvs at cvs.gnupg.org
Tue Aug 5 19:36:50 CEST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Error codes used by GnuPG et al.".

The branch, master has been updated
       via  3325403c0dd2949bf52efa1b9a5b5cf3191110f9 (commit)
      from  8338a4ba93367974758dc5e195f67e9d171d4086 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
commit 3325403c0dd2949bf52efa1b9a5b5cf3191110f9
Author: Werner Koch <wk at gnupg.org>
Date:   Tue Aug 5 19:32:51 2014 +0200

    Use 16 byte alignment for hppa-unknown-linux-gnu.
    
    * configure.ac (HAVE_GCC_ATTRIBUTE_ALIGNED): New.
    * src/gen-posix-lock-obj.c (USE_16BYTE_ALIGNMENT): Set for HPPA-Linux.
    (main): Enforce alignment if needed.
    * src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h: Use 16 byte
    alignment.
    --
    
    Debian-bug-id: 757060

diff --git a/configure.ac b/configure.ac
index 653d7ed..e1f167f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -167,6 +167,20 @@ AC_CHECK_FUNCS([flockfile])
 # Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
 
+#
+# Check whether the compiler supports the GCC style aligned attribute
+#
+AC_CACHE_CHECK([whether the GCC style aligned attribute is supported],
+       [gcry_cv_gcc_attribute_aligned],
+       [gcry_cv_gcc_attribute_aligned=no
+        AC_COMPILE_IFELSE([AC_LANG_SOURCE(
+          [[struct { int a; } foo __attribute__ ((aligned (16)));]])],
+          [gcry_cv_gcc_attribute_aligned=yes])])
+if test "$gcry_cv_gcc_attribute_aligned" = "yes" ; then
+   AC_DEFINE(HAVE_GCC_ATTRIBUTE_ALIGNED,1,
+     [Defined if a GCC style "__attribute__ ((aligned (n))" is supported])
+fi
+
 
 # Check for thread library.
 #
@@ -278,5 +292,12 @@ echo "
 
         Revision: mym4_revision  (mym4_revision_dec)
         Platform: $host
-
 "
+if test "$gcry_cv_gcc_attribute_aligned" != "yes" ; then
+cat <<G10EOF
+***
+***  Please not that your compiler does not support the GCC style
+***  aligned attribute.  Using this software may evoke bus errors.
+***
+G10EOF
+fi
diff --git a/src/gen-posix-lock-obj.c b/src/gen-posix-lock-obj.c
index df732c3..d2bc645 100644
--- a/src/gen-posix-lock-obj.c
+++ b/src/gen-posix-lock-obj.c
@@ -40,6 +40,19 @@
 # error sizeof pthread_mutex_t is not known.
 #endif
 
+/* Special requirements for certain platforms.  */
+#if defined(__hppa__) && defined(__linux__)
+# define USE_16BYTE_ALIGNMENT 1
+#else
+# define USE_16BYTE_ALIGNMENT 0
+#endif
+
+
+#if USE_16BYTE_ALIGNMENT && !HAVE_GCC_ATTRIBUTE_ALIGNED
+# error compiler is not able to enforce a 16 byte alignment
+#endif
+
+
 static pthread_mutex_t mtx = PTHREAD_MUTEX_INITIALIZER;
 
 
@@ -76,6 +89,7 @@ main (void)
           "  long _vers;\n"
           "  union {\n"
           "    volatile char _priv[%d];\n"
+          "%s"
           "    long _x_align;\n"
           "    long *_xp_align;\n"
           "  } u;\n"
@@ -84,6 +98,11 @@ main (void)
           "#define GPGRT_LOCK_INITIALIZER {%d,{{",
           HOST_TRIPLET_STRING,
           SIZEOF_PTHREAD_MUTEX_T,
+#if USE_16BYTE_ALIGNMENT
+          "    int _x16_align __attribute__ ((aligned (16)));\n",
+#else
+          "",
+#endif
           LOCK_ABI_VERSION);
   p = (unsigned char *)&mtx;
   for (i=0; i < sizeof mtx; i++)
diff --git a/src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h b/src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h
index fd47664..b57bb76 100644
--- a/src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h
+++ b/src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h
@@ -7,6 +7,7 @@ typedef struct
   long _vers;
   union {
     volatile char _priv[48];
+    int _x16_align __attribute__ ((aligned (16)));
     long _x_align;
     long *_xp_align;
   } u;

-----------------------------------------------------------------------

Summary of changes:
 configure.ac                                     |   23 +++++++++++++++++++++-
 src/gen-posix-lock-obj.c                         |   19 ++++++++++++++++++
 src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h |    1 +
 3 files changed, 42 insertions(+), 1 deletion(-)


hooks/post-receive
-- 
Error codes used by GnuPG et al.
http://git.gnupg.org




More information about the Gnupg-commits mailing list