diff options
Diffstat (limited to 'meta/recipes-extended/libaio/libaio/generic-arch-dectection-for-padding-defines.patch')
-rw-r--r-- | meta/recipes-extended/libaio/libaio/generic-arch-dectection-for-padding-defines.patch | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/meta/recipes-extended/libaio/libaio/generic-arch-dectection-for-padding-defines.patch b/meta/recipes-extended/libaio/libaio/generic-arch-dectection-for-padding-defines.patch new file mode 100644 index 0000000000..bba7e554af --- /dev/null +++ b/meta/recipes-extended/libaio/libaio/generic-arch-dectection-for-padding-defines.patch | |||
@@ -0,0 +1,65 @@ | |||
1 | From: Nathan Rossi <nathan.rossi@xilinx.com> | ||
2 | Date: Tue, 27 Jan 2015 14:59:35 +1000 | ||
3 | Subject: [PATCH] Generic arch dectection for padding defines | ||
4 | |||
5 | When available use the GNU C defines for endian and bitwidth to | ||
6 | determine the padding required. This reduces the need to define the | ||
7 | padding selection for every architecture. | ||
8 | |||
9 | Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com> | ||
10 | Signed-off-by: Jeff Moyer <jmoyer@redhat.com> | ||
11 | Upstream-Status: Backport | ||
12 | --- | ||
13 | src/libaio.h | 16 ++++++++++++---- | ||
14 | 1 file changed, 12 insertions(+), 4 deletions(-) | ||
15 | |||
16 | diff --git a/src/libaio.h b/src/libaio.h | ||
17 | index 1223146..4a4e0f5 100644 | ||
18 | --- a/src/libaio.h | ||
19 | +++ b/src/libaio.h | ||
20 | @@ -52,14 +52,18 @@ typedef enum io_iocb_cmd { | ||
21 | /* little endian, 32 bits */ | ||
22 | #if defined(__i386__) || (defined(__arm__) && !defined(__ARMEB__)) || \ | ||
23 | defined(__sh__) || defined(__bfin__) || defined(__MIPSEL__) || \ | ||
24 | - defined(__cris__) | ||
25 | + defined(__cris__) || \ | ||
26 | + (defined(__GNUC__) && defined(__BYTE_ORDER__) && \ | ||
27 | + __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG__ == 4) | ||
28 | #define PADDED(x, y) x; unsigned y | ||
29 | #define PADDEDptr(x, y) x; unsigned y | ||
30 | #define PADDEDul(x, y) unsigned long x; unsigned y | ||
31 | |||
32 | /* little endian, 64 bits */ | ||
33 | #elif defined(__ia64__) || defined(__x86_64__) || defined(__alpha__) || \ | ||
34 | - (defined(__aarch64__) && defined(__AARCH64EL__)) | ||
35 | + (defined(__aarch64__) && defined(__AARCH64EL__)) || \ | ||
36 | + (defined(__GNUC__) && defined(__BYTE_ORDER__) && \ | ||
37 | + __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG__ == 8) | ||
38 | #define PADDED(x, y) x, y | ||
39 | #define PADDEDptr(x, y) x | ||
40 | #define PADDEDul(x, y) unsigned long x | ||
41 | @@ -67,7 +71,9 @@ typedef enum io_iocb_cmd { | ||
42 | /* big endian, 64 bits */ | ||
43 | #elif defined(__powerpc64__) || defined(__s390x__) || \ | ||
44 | (defined(__sparc__) && defined(__arch64__)) || \ | ||
45 | - (defined(__aarch64__) && defined(__AARCH64EB__)) | ||
46 | + (defined(__aarch64__) && defined(__AARCH64EB__)) || \ | ||
47 | + (defined(__GNUC__) && defined(__BYTE_ORDER__) && \ | ||
48 | + __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ && __SIZEOF_LONG__ == 8) | ||
49 | #define PADDED(x, y) unsigned y; x | ||
50 | #define PADDEDptr(x,y) x | ||
51 | #define PADDEDul(x, y) unsigned long x | ||
52 | @@ -76,7 +82,9 @@ typedef enum io_iocb_cmd { | ||
53 | #elif defined(__PPC__) || defined(__s390__) || \ | ||
54 | (defined(__arm__) && defined(__ARMEB__)) || \ | ||
55 | defined(__sparc__) || defined(__MIPSEB__) || defined(__m68k__) || \ | ||
56 | - defined(__hppa__) || defined(__frv__) || defined(__avr32__) | ||
57 | + defined(__hppa__) || defined(__frv__) || defined(__avr32__) || \ | ||
58 | + (defined(__GNUC__) && defined(__BYTE_ORDER__) && \ | ||
59 | + __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ && __SIZEOF_LONG__ == 4) | ||
60 | #define PADDED(x, y) unsigned y; x | ||
61 | #define PADDEDptr(x, y) unsigned y; x | ||
62 | #define PADDEDul(x, y) unsigned y; unsigned long x | ||
63 | -- | ||
64 | 2.1.1 | ||
65 | |||