pkgsrc-Users archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: libgpg-error core dumps on Solaris 10 sparc with gcc 4.9.2
On Thu, Nov 05, 2015 at 05:00:04PM -0600, Tim Zingelman wrote:
> On Mon, 11 May 2015, Ibraheem Saleh wrote:
>
> > Building libgpg-error 1.19 on Solaris 10 sparc with gcc 4.9.2 succeeds
> > without error but coredumps when trying to use it.
> >
> > bmake test fails all 5 of the tests with the same assertion message:
> >
> > gmake[2]: Entering directory
> > `/usr/pkgsrc/security/libgpg-error/work/libgpg-error-1.19/tests'
> > Assertion failed: !"sizeof lock obj", file posix-lock.c, line 119
> > Abort (core dumped)
> > FAIL: t-version
> >
> > Anyone know whats going on or how to fix this?
>
> I'm thinking that the problem is that in _gpgrt_lock_t the second
> element ends up being 64 bit aligned (a long of padding after vers)
> giving a total sizeof=32 and no such alignment happens for
> gpgrt_lock_t so sizeof=28. I added a printf before the assert and it
> reported those two exact different sizes, so that supports the theory.
>
> typedef struct
> {
> long _vers;
> union {
> volatile char _priv[24];
> long _x_align;
> long *_xp_align;
> } u;
> } gpgrt_lock_t;
>
> typedef struct
> {
> long vers;
> #if USE_POSIX_THREADS
> union {
> pthread_mutex_t mtx;
> long *dummy;
> } u;
> #endif
> } _gpgrt_lock_t;
>
> I just tested on Solaris 10 Sparc and the following patch resolves the
> problem. I'm not sure if this patch is appropriate for all platforms
> or only Sparc. If someone else has the cycles to pass this fix
> upstream that would be great.
I've filed
https://bugs.gnupg.org/gnupg/issue2144
for this.
Thomas
> (Also note I did NOT take out the patch from
> patches/patch-src_estream.c when testing this fix... it seemed
> unrelated to the assert failure.)
>
>
> --- src/gen-posix-lock-obj.c.orig Thu Nov 5 16:44:59 2015
> +++ src/gen-posix-lock-obj.c Thu Nov 5 16:49:19 2015
> @@ -109,7 +109,7 @@
> " union {\n"
> " volatile char _priv[%d];\n"
> "%s"
> - " long _x_align;\n"
> + " long long _x_align;\n"
> " long *_xp_align;\n"
> " } u;\n"
> "} gpgrt_lock_t;\n"
>
> Please include me directly in followups, I am not currently subscribed
> to pkgsrc-users.
>
> - Tim
>
Home |
Main Index |
Thread Index |
Old Index