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 @@ +From: Nathan Rossi <nathan.rossi@xilinx.com> +Date: Tue, 27 Jan 2015 14:59:35 +1000 +Subject: [PATCH] Generic arch dectection for padding defines + +When available use the GNU C defines for endian and bitwidth to +determine the padding required. This reduces the need to define the +padding selection for every architecture. + +Signed-off-by: Nathan Rossi <nathan.rossi@xilinx.com> +Signed-off-by: Jeff Moyer <jmoyer@redhat.com> +Upstream-Status: Backport +--- + src/libaio.h | 16 ++++++++++++---- + 1 file changed, 12 insertions(+), 4 deletions(-) + +diff --git a/src/libaio.h b/src/libaio.h +index 1223146..4a4e0f5 100644 +--- a/src/libaio.h ++++ b/src/libaio.h +@@ -52,14 +52,18 @@ typedef enum io_iocb_cmd { + /* little endian, 32 bits */ + #if defined(__i386__) || (defined(__arm__) && !defined(__ARMEB__)) || \ + defined(__sh__) || defined(__bfin__) || defined(__MIPSEL__) || \ +- defined(__cris__) ++ defined(__cris__) || \ ++ (defined(__GNUC__) && defined(__BYTE_ORDER__) && \ ++ __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG__ == 4) + #define PADDED(x, y) x; unsigned y + #define PADDEDptr(x, y) x; unsigned y + #define PADDEDul(x, y) unsigned long x; unsigned y + + /* little endian, 64 bits */ + #elif defined(__ia64__) || defined(__x86_64__) || defined(__alpha__) || \ +- (defined(__aarch64__) && defined(__AARCH64EL__)) ++ (defined(__aarch64__) && defined(__AARCH64EL__)) || \ ++ (defined(__GNUC__) && defined(__BYTE_ORDER__) && \ ++ __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__ && __SIZEOF_LONG__ == 8) + #define PADDED(x, y) x, y + #define PADDEDptr(x, y) x + #define PADDEDul(x, y) unsigned long x +@@ -67,7 +71,9 @@ typedef enum io_iocb_cmd { + /* big endian, 64 bits */ + #elif defined(__powerpc64__) || defined(__s390x__) || \ + (defined(__sparc__) && defined(__arch64__)) || \ +- (defined(__aarch64__) && defined(__AARCH64EB__)) ++ (defined(__aarch64__) && defined(__AARCH64EB__)) || \ ++ (defined(__GNUC__) && defined(__BYTE_ORDER__) && \ ++ __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ && __SIZEOF_LONG__ == 8) + #define PADDED(x, y) unsigned y; x + #define PADDEDptr(x,y) x + #define PADDEDul(x, y) unsigned long x +@@ -76,7 +82,9 @@ typedef enum io_iocb_cmd { + #elif defined(__PPC__) || defined(__s390__) || \ + (defined(__arm__) && defined(__ARMEB__)) || \ + defined(__sparc__) || defined(__MIPSEB__) || defined(__m68k__) || \ +- defined(__hppa__) || defined(__frv__) || defined(__avr32__) ++ defined(__hppa__) || defined(__frv__) || defined(__avr32__) || \ ++ (defined(__GNUC__) && defined(__BYTE_ORDER__) && \ ++ __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__ && __SIZEOF_LONG__ == 4) + #define PADDED(x, y) unsigned y; x + #define PADDEDptr(x, y) unsigned y; x + #define PADDEDul(x, y) unsigned y; unsigned long x +-- +2.1.1 + |