[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: gcc 4.5 and TLS



Andreas Schwab dixit:

>m68k compiler only guarantees a maximum alignment of 2 bytes, but the
>futex syscall requires 4 byte alignment.  So if your pthread mutex is
>not aligned on a 4 byte boundary this will result in passing an
>unaligned address to futex.  I haven't yet decided on what would be the
>best way to fix that.

I have the same problem on i386 (4 byte alignment, 16 byte requirement):

/**     $MirOS: src/sys/crypto/rijndael.h,v 1.3 2008/03/27 22:39:07 tg Exp $ */
[…]
#define __RIJNDAEL_ALIGNED      __attribute__((aligned (16)))
[…]
typedef struct {
        u32     ek[4*(MAXNR + 1) + 4]   /* encrypt key schedule */
            __RIJNDAEL_ALIGNED;
        u32     dk[4*(MAXNR + 1) + 4]   /* decrypt key schedule */
            __RIJNDAEL_ALIGNED;
        union { 
                struct viac3_rijndael_ctx via;
        } hwcr_info;
        u8      enc_only;               /* context contains only encrypt schedule */
        u8      Nr;                     /* key-length-dependent number of rounds */
#define RIJNDAEL_HWCR_SOFTWARE  0
#define RIJNDAEL_HWCR_VIA       1
        u8      hwcr_id;                /* which crypto processor is used */
} rijndael_ctx __RIJNDAEL_ALIGNED;


I guess that the eglibc headers would be the place to put this.

HTH&HAND,
//mirabilos
-- 
Support mksh as /bin/sh and RoQA dash NOW!
‣ src:bash (224 (240) bugs: 0 RC, 171 (184) I&N, 53 (56) M&W, 0 F&P)
‣ src:dash (61 (66) bugs: 3 (4) RC, 43 (47) I&N, 15 M&W, 0 F&P)
‣ src:mksh (3 bugs: 0 RC, 0 I&N, 3 M&W, 0 F&P)


Reply to: