* [U-Boot] [PATCH] compiler.h: use u-boot endian macros on OpenBSD
@ 2016-11-26 4:18 Jonathan Gray
2016-12-03 23:47 ` [U-Boot] " Tom Rini
0 siblings, 1 reply; 2+ messages in thread
From: Jonathan Gray @ 2016-11-26 4:18 UTC (permalink / raw)
To: u-boot
When building u-boot on sparc64 and powerpc hosts it became clear that
u-boot expects endian conversion defines to be macros:
lib/crc32.c:87: error: braced-group within expression allowed only inside a function
For OpenBSD switch from using system definitions equivalent to the u-boot ones
and define glibc __BYTE_ORDER __BIG_ENDIAN __LITTLE_ENDIAN names, as at least
some parts of the non-cross build assumes those names are present (ie crc32.c).
Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
---
include/compiler.h | 18 ++++--------------
1 file changed, 4 insertions(+), 14 deletions(-)
diff --git a/include/compiler.h b/include/compiler.h
index 65b826e..a43fb6a 100644
--- a/include/compiler.h
+++ b/include/compiler.h
@@ -52,6 +52,9 @@ typedef unsigned long ulong;
# include <sys/endian.h> /* htole32 and friends */
#elif defined(__OpenBSD__)
# include <endian.h>
+# define __BYTE_ORDER BYTE_ORDER
+# define __LITTLE_ENDIAN LITTLE_ENDIAN
+# define __BIG_ENDIAN BIG_ENDIAN
#endif
#include <time.h>
@@ -84,20 +87,7 @@ typedef unsigned int uint;
# define uswap_64(x) _uswap_64(x, )
#endif
-#if defined(__OpenBSD__)
-#define cpu_to_le16(x) htole16(x)
-#define cpu_to_le32(x) htole32(x)
-#define cpu_to_le64(x) htole64(x)
-#define le16_to_cpu(x) letoh16(x)
-#define le32_to_cpu(x) letoh32(x)
-#define le64_to_cpu(x) letoh64(x)
-#define cpu_to_be16(x) htobe16(x)
-#define cpu_to_be32(x) htobe32(x)
-#define cpu_to_be64(x) htobe64(x)
-#define be16_to_cpu(x) betoh16(x)
-#define be32_to_cpu(x) betoh32(x)
-#define be64_to_cpu(x) betoh64(x)
-#elif __BYTE_ORDER == __LITTLE_ENDIAN
+#if __BYTE_ORDER == __LITTLE_ENDIAN
# define cpu_to_le16(x) (x)
# define cpu_to_le32(x) (x)
# define cpu_to_le64(x) (x)
--
2.10.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [U-Boot] compiler.h: use u-boot endian macros on OpenBSD
2016-11-26 4:18 [U-Boot] [PATCH] compiler.h: use u-boot endian macros on OpenBSD Jonathan Gray
@ 2016-12-03 23:47 ` Tom Rini
0 siblings, 0 replies; 2+ messages in thread
From: Tom Rini @ 2016-12-03 23:47 UTC (permalink / raw)
To: u-boot
On Sat, Nov 26, 2016 at 03:18:00PM +1100, Jonathan Gray wrote:
> When building u-boot on sparc64 and powerpc hosts it became clear that
> u-boot expects endian conversion defines to be macros:
>
> lib/crc32.c:87: error: braced-group within expression allowed only inside a function
>
> For OpenBSD switch from using system definitions equivalent to the u-boot ones
> and define glibc __BYTE_ORDER __BIG_ENDIAN __LITTLE_ENDIAN names, as at least
> some parts of the non-cross build assumes those names are present (ie crc32.c).
>
> Signed-off-by: Jonathan Gray <jsg@jsg.id.au>
Applied to u-boot/master, thanks!
--
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.denx.de/pipermail/u-boot/attachments/20161203/8ef3a650/attachment.sig>
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2016-12-03 23:47 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-11-26 4:18 [U-Boot] [PATCH] compiler.h: use u-boot endian macros on OpenBSD Jonathan Gray
2016-12-03 23:47 ` [U-Boot] " Tom Rini
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox