[PATCH libgpg-error] syscfg: Add ARC architecture
Alexey Brodkin
Alexey.Brodkin at synopsys.com
Wed Sep 19 22:53:40 CEST 2018
Hi Vineet, Werner,
On Wed, 2018-09-19 at 18:46 +0000, Vineet Gupta wrote:
> On 09/19/2018 04:44 AM, Werner Koch wrote:
> > On Tue, 18 Sep 2018 21:34, Vineet.Gupta1 at synopsys.com said:
> >
> > > I'm not exactly clear what the question is ? What is specific in ABI related to
> > > locks ?
> >
> > Libgpg-error abstracts the native lock interface and thus needs to get
> > some information on the actual implementation. It can very well be the
> > case that the big-endian ABI is different from the little endian ABI.
> > In particular the static initialization may be different; this is
> > implemented in libgpg-error using a macro which may look like this
> >
> > #define GPGRT_LOCK_INITIALIZER {1,{{167,171,170,50,0,0,0,0, \
> > 0,0,0,0,0,0,0,0, \
> > 0,0,0,0,0,0,0,0, \
> > 0,0,0,0,0,0,0,0, \
> > 0,0,0,0,0,0,0,0, \
> > 0,0,0,0,0,0,0,0, \
> > 0,0,0,0,0,0,0,0, \
> > 0,0,0,0,0,0,0,0}}}
> >
> > This is an memory image and we can't make use of C data types because
> > we don't know them.
>
> Well BE will certainly be different than LE.
> Back to the original discussion, was the question about glibc vs. uClibc pthread
> ABI ? Since they are different / independent implementations (even if uClibc is
> sort of copy over from glibc) we can't guarantee that these would the same so each
> would need a specific initializer I guess.
That's what I've got for glibc case:
-------------------------->8-------------------------
## lock-obj-pub.arc-buildroot-linux-gnu.h
## File created by gen-posix-lock-obj - DO NOT EDIT
## To be included by mkheader into gpg-error.h
typedef struct
{
long _vers;
union {
volatile char _priv[24];
long _x_align;
long *_xp_align;
} u;
} gpgrt_lock_t;
#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0}}}
##
## Local Variables:
## mode: c
## buffer-read-only: t
## End:
##
-------------------------->8-------------------------
I'd say it looks similar to uClibc version which is below
as a reference:
-------------------------->8-------------------------
## lock-obj-pub.arc-buildroot-linux-uclibc.h
## File created by gen-posix-lock-obj - DO NOT EDIT
## To be included by mkheader into gpg-error.h
typedef struct
{
long _vers;
union {
volatile char _priv[24];
long _x_align;
long *_xp_align;
} u;
} gpgrt_lock_t;
#define GPGRT_LOCK_INITIALIZER {1,{{0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0, \
0,0,0,0,0,0,0,0}}}
##
## Local Variables:
## mode: c
## buffer-read-only: t
## End:
##
-------------------------->8-------------------------
-Alexey
More information about the Gnupg-devel
mailing list