It looks like this was introduced by the following change: diff --git a/debian/patches/0006-fix-Solaris-and-HPPA-this-is-a-collection-of-upstrea.patch b/debian/patches/0006-fix-Solaris-and-HPPA-this-is-a-collection-of-upstrea.patch new file mode 100644 index 0000000..54ae9a1 --- /dev/null +++ b/debian/patches/0006-fix-Solaris-and-HPPA-this-is-a-collection-of-upstrea.patch @@ -0,0 +1,193 @@ +From: NIIBE Yutaka <gni...@fsij.org> +Date: Fri, 26 Feb 2016 09:29:14 +0900 +Subject: fix Solaris and HPPA (this is a collection of upstream Solaris fixes) +MIME-Version: 1.0 +Content-Type: text/plain; charset="utf-8" +Content-Transfer-Encoding: 8bit + +Add support for Solaris, fixing HPPA. + +* configure.ac (HAVE_GCC_ATTRIBUTE_ALIGNED): Remove. +(LIB_SCHED_YIELD): New. Check sched_yield in -lrt. +* src/gen-posix-lock-obj.c (USE_16BYTE_ALIGNMENT): Remove. +(USE_DOUBLE_FOR_ALIGNMENT, USE_LONG_DOUBLE_FOR_ALIGNMENT): New. +* src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h: Update. + +-- + +Signed-off-by: NIIBE Yutaka <gni...@fsij.org> + +Fix for Solaris. + +* src/gen-posix-lock-obj.c (USE_DOUBLE_FOR_ALIGNMENT): Check LP64. + +-- + +Signed-off-by: NIIBE Yutaka <gni...@fsij.org> + +This fixes commit 5168b97. + +For Solaris, add -lrt correctly. + +* configure.ac (LIB_SCHED_YIELD): Not avoiding defining LIB. + +-- + +This fixes commit 5168b97 for Solaris linking issue. It tried to add +-lrt for build on Solaris for gpg-error, but it wrongly avoids adding +it also to LIB, which actually is needed. + +Reported-by: Tom G. Christensen <t...@jupiterrise.com> + +Thanks also to Jörn Clausen, who submitted a report to our BTS. + +GnuPG-bug-id: 1671 + +Signed-off-by: NIIBE Yutaka <gni...@fsij.org> + +Fix detecting Solaris operating system. + +* src/gen-posix-lock-obj.c (USE_DOUBLE_FOR_ALIGNMENT): Check for +the macro __sun. + +-- +Signed-off-by: NIIBE Yutaka <gni...@fsij.org> + +This fixes commit 5168b97 and 34b0714. + +Thanks to Ibraheem Saleh and Thomas Klausner for testing. + +Thanks to Tom G. Christensen for suggesting the fix with the +useful link: https://sourceforge.net/p/predef/wiki/Home/ + +Thanks to Nelson H. F. Beebe to inform the tool: +http://www.math.utah.edu/~beebe/cc-defs + +GnuPG-bug-id: 2144 +--- + configure.ac | 38 ++++++++++-------------- + src/gen-posix-lock-obj.c | 21 +++++++------ + src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h | 2 +- + 3 files changed, 28 insertions(+), 33 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2d27cc6..5d3c06c 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -274,20 +274,6 @@ if test "$GCC" = yes; then + fi + + # +-# 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 ELF visibility support. + # + AC_CACHE_CHECK(whether the visibility attribute is supported, +@@ -416,6 +402,20 @@ else + fi + fi + ++# Default value for GPG_ERROR_CONFIG_LIBS ++config_libs="-lgpg-error" ++ ++# ++# Check for other libraries (now only for -lrt). ++# ++LIB_SCHED_YIELD= ++AC_SUBST([LIB_SCHED_YIELD]) ++AC_SEARCH_LIBS([sched_yield], [rt posix4], ++ [if test "$ac_cv_search_sched_yield" != "none required"; then ++ LIB_SCHED_YIELD=$ac_cv_search_sched_yield ++ config_libs="$config_libs $LIB_SCHED_YIELD" ++ fi]) ++ + # + # Prepare building of estream + # +@@ -424,7 +424,7 @@ estream_INIT + # + # Substitution used for gpg-error-config + # +-GPG_ERROR_CONFIG_LIBS="-lgpg-error" ++GPG_ERROR_CONFIG_LIBS="$config_libs" + if test "x$LIBTHREAD" != x; then + GPG_ERROR_CONFIG_LIBS="${GPG_ERROR_CONFIG_LIBS} ${LIBTHREAD}" + fi +@@ -544,11 +544,3 @@ echo " + Revision: mym4_revision (mym4_revision_dec) + Platform: $host$tmp + " +-if test "$gcry_cv_gcc_attribute_aligned" != "yes" ; then +-cat <<G10EOF +-*** +-*** Please note 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 595d379..5564301 100644 +--- a/src/gen-posix-lock-obj.c ++++ b/src/gen-posix-lock-obj.c +@@ -43,15 +43,16 @@ + #endif + + /* Special requirements for certain platforms. */ +-#if defined(__hppa__) && defined(__linux__) +-# define USE_16BYTE_ALIGNMENT 1 ++#if defined(__sun) && !defined (__LP64__) && !defined(_LP64) ++/* Solaris on 32-bit architecture. */ ++# define USE_DOUBLE_FOR_ALIGNMENT 1 + #else +-# define USE_16BYTE_ALIGNMENT 0 ++# define USE_DOUBLE_FOR_ALIGNMENT 0 + #endif +- +- +-#if USE_16BYTE_ALIGNMENT && !HAVE_GCC_ATTRIBUTE_ALIGNED +-# error compiler is not able to enforce a 16 byte alignment ++#if defined(__hppa__) ++# define USE_LONG_DOUBLE_FOR_ALIGNMENT 1 ++#else ++# define USE_LONG_DOUBLE_FOR_ALIGNMENT 0 + #endif + + #ifdef USE_POSIX_THREADS +@@ -116,8 +117,10 @@ main (void) + "\n" + "#define GPGRT_LOCK_INITIALIZER {%d,{{", + SIZEOF_PTHREAD_MUTEX_T, +-# if USE_16BYTE_ALIGNMENT +- " int _x16_align __attribute__ ((aligned (16)));\n", ++# if USE_DOUBLE_FOR_ALIGNMENT ++ " double _xd_align;\n", ++# elif USE_LONG_DOUBLE_FOR_ALIGNMENT ++ " long double _xld_align;\n", + # else + "", + # endif +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 b57bb76..3682577 100644 +--- a/src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h ++++ b/src/syscfg/lock-obj-pub.hppa-unknown-linux-gnu.h +@@ -7,7 +7,7 @@ typedef struct + long _vers; + union { + volatile char _priv[48]; +- int _x16_align __attribute__ ((aligned (16))); ++ long double _xld_align; + long _x_align; + long *_xp_align; + } u;
On hppa-linux, double and long double are the same and thus need 8-byte alignment. The only object that needs 16-byte alignment is the target of ldcw instruction. Dave -- John David Anglin dave.ang...@bell.net