Message ID | 20161211035113.61476-1-jsg@jsg.id.au |
---|---|
State | Accepted |
Commit | 43db3e3b3d7d24c080ee04605a0f045939137b19 |
Delegated to: | Tom Rini |
Headers | show |
Any objections to this? On Sun, Dec 11, 2016 at 02:51:13PM +1100, Jonathan Gray wrote: > Use the endian macros from u-boot's compiler.h instead of duplicating > the definitions. > > This also avoids a build error on OpenBSD by removing swap64 which > collides with a system definition in endian.h pulled in by inttypes.h. > > Signed-off-by: Jonathan Gray <jsg@jsg.id.au> > --- > tools/relocate-rela.c | 41 ++++------------------------------------- > 1 file changed, 4 insertions(+), 37 deletions(-) > > diff --git a/tools/relocate-rela.c b/tools/relocate-rela.c > index 670b9fd..3c9d134 100644 > --- a/tools/relocate-rela.c > +++ b/tools/relocate-rela.c > @@ -15,6 +15,7 @@ > #include <stdio.h> > #include <stdlib.h> > #include <string.h> > +#include "compiler.h" > > #ifndef R_AARCH64_RELATIVE > #define R_AARCH64_RELATIVE 1027 > @@ -50,40 +51,6 @@ static bool supported_rela(Elf64_Rela *rela) > } > } > > -static inline uint64_t swap64(uint64_t val) > -{ > - return ((val >> 56) & 0x00000000000000ffULL) | > - ((val >> 40) & 0x000000000000ff00ULL) | > - ((val >> 24) & 0x0000000000ff0000ULL) | > - ((val >> 8) & 0x00000000ff000000ULL) | > - ((val << 8) & 0x000000ff00000000ULL) | > - ((val << 24) & 0x0000ff0000000000ULL) | > - ((val << 40) & 0x00ff000000000000ULL) | > - ((val << 56) & 0xff00000000000000ULL); > -} > - > -#if __BYTE_ORDER == __LITTLE_ENDIAN > -static inline uint64_t be64(uint64_t val) > -{ > - return swap64(val); > -} > - > -static inline uint64_t le64(uint64_t val) > -{ > - return val; > -} > -#else > -static inline uint64_t le64(uint64_t val) > -{ > - return swap64(val); > -} > - > -static inline uint64_t be64(uint64_t val) > -{ > - return val; > -} > -#endif > - > static bool read_num(const char *str, uint64_t *num) > { > char *endptr; > @@ -148,9 +115,9 @@ int main(int argc, char **argv) > return 4; > } > > - swrela.r_offset = le64(rela.r_offset); > - swrela.r_info = le64(rela.r_info); > - swrela.r_addend = le64(rela.r_addend); > + swrela.r_offset = cpu_to_le64(rela.r_offset); > + swrela.r_info = cpu_to_le64(rela.r_info); > + swrela.r_addend = cpu_to_le64(rela.r_addend); > > if (!supported_rela(&swrela)) > continue; > -- > 2.10.2 > > _______________________________________________ > U-Boot mailing list > U-Boot@lists.denx.de > http://lists.denx.de/mailman/listinfo/u-boot
On Sun, Dec 11, 2016 at 02:51:13PM +1100, Jonathan Gray wrote: > Use the endian macros from u-boot's compiler.h instead of duplicating > the definitions. > > This also avoids a build error on OpenBSD by removing swap64 which > collides with a system definition in endian.h pulled in by inttypes.h. > > Signed-off-by: Jonathan Gray <jsg@jsg.id.au> Applied to u-boot/master, thanks!
diff --git a/tools/relocate-rela.c b/tools/relocate-rela.c index 670b9fd..3c9d134 100644 --- a/tools/relocate-rela.c +++ b/tools/relocate-rela.c @@ -15,6 +15,7 @@ #include <stdio.h> #include <stdlib.h> #include <string.h> +#include "compiler.h" #ifndef R_AARCH64_RELATIVE #define R_AARCH64_RELATIVE 1027 @@ -50,40 +51,6 @@ static bool supported_rela(Elf64_Rela *rela) } } -static inline uint64_t swap64(uint64_t val) -{ - return ((val >> 56) & 0x00000000000000ffULL) | - ((val >> 40) & 0x000000000000ff00ULL) | - ((val >> 24) & 0x0000000000ff0000ULL) | - ((val >> 8) & 0x00000000ff000000ULL) | - ((val << 8) & 0x000000ff00000000ULL) | - ((val << 24) & 0x0000ff0000000000ULL) | - ((val << 40) & 0x00ff000000000000ULL) | - ((val << 56) & 0xff00000000000000ULL); -} - -#if __BYTE_ORDER == __LITTLE_ENDIAN -static inline uint64_t be64(uint64_t val) -{ - return swap64(val); -} - -static inline uint64_t le64(uint64_t val) -{ - return val; -} -#else -static inline uint64_t le64(uint64_t val) -{ - return swap64(val); -} - -static inline uint64_t be64(uint64_t val) -{ - return val; -} -#endif - static bool read_num(const char *str, uint64_t *num) { char *endptr; @@ -148,9 +115,9 @@ int main(int argc, char **argv) return 4; } - swrela.r_offset = le64(rela.r_offset); - swrela.r_info = le64(rela.r_info); - swrela.r_addend = le64(rela.r_addend); + swrela.r_offset = cpu_to_le64(rela.r_offset); + swrela.r_info = cpu_to_le64(rela.r_info); + swrela.r_addend = cpu_to_le64(rela.r_addend); if (!supported_rela(&swrela)) continue;
Use the endian macros from u-boot's compiler.h instead of duplicating the definitions. This also avoids a build error on OpenBSD by removing swap64 which collides with a system definition in endian.h pulled in by inttypes.h. Signed-off-by: Jonathan Gray <jsg@jsg.id.au> --- tools/relocate-rela.c | 41 ++++------------------------------------- 1 file changed, 4 insertions(+), 37 deletions(-)