← Commit list

688ed0d76

Rob Landley
Rob Landley
2006-03-04
SOURCE BUG Duration: 14s

Subject

Patch from Robert P. Day, moving byte order checks to use platform.h macros.

SOURCE BUG

This commit was genuinely broken at the time (not related to our build system): scripts/config/mkconfigs.c (2005-08-01 - 2006-10-05 arasi) uretilen bbconfigopts.h icine .config satirlarini kacissiz, ham newline'larla gömüyordu - gecerli C degildi, busybox'un kendi bb_mkdep araci bile parse edemiyordu (7d219aab7 ile duzeltildi, mkconfigs shell scripte cevrildi)

→ Bu hatanin tam hikayesini ve duzeltme diffini gor

Binary

No binary (build failed)

Architecture & Compiler Flags

Architecture: x86_64-linux-gnu Compiler: gcc (Ubuntu 11.4.0-1ubuntu1~22.04.3) 11.4.0

—

Build Log

(log yok)

Commit Diff GitHub →

archival/libunarchive/decompress_unlzma.c+2 -2
@@ -119,10 +119,10 @@ int unlzma(int src_fd, int dst_fd)
pos_state_mask = (1 << pb) - 1;
literal_pos_mask = (1 << lp) - 1;
-#if __BYTE_ORDER == __BIG_ENDIAN
+#if BB_BIG_ENDIAN
header.dict_size = bswap_32(header.dict_size);
header.dst_size = bswap_64(header.dst_size);
-#endif /* __BYTE_ORDER */
+#endif
if (header.dict_size == 0)
header.dict_size = 1;
archival/unzip.c+7 -7
@@ -32,7 +32,7 @@
#include "unarchive.h"
#include "busybox.h"
-#if (BYTE_ORDER == BIG_ENDIAN)
+#if BB_BIG_ENDIAN
static inline unsigned short
__swap16(unsigned short x) {
return (((uint16_t)(x) & 0xFF) << 8) | (((uint16_t)(x) & 0xFF00) >> 8);
@@ -45,10 +45,10 @@ __swap32(uint32_t x) {
((x & 0xFF0000) >> 8) |
((x & 0xFF000000) >> 24));
}
-#else
-#define __swap16(x) (x)
-#define __swap32(x) (x)
-#endif
+#else /* it's little-endian */
+# define __swap16(x) (x)
+# define __swap32(x) (x)
+#endif /* BB_BIG_ENDIAN */
#define ZIP_FILEHEADER_MAGIC __swap32(0x04034b50)
#define ZIP_CDS_MAGIC __swap32(0x02014b50)
@@ -253,7 +253,7 @@ extern int unzip_main(int argc, char **argv)
/* Read the file header */
unzip_read(src_fd, zip_header.raw, 26);
-#if (BYTE_ORDER == BIG_ENDIAN)
+#if BB_BIG_ENDIAN
zip_header.formated.version = __swap16(zip_header.formated.version);
zip_header.formated.flags = __swap16(zip_header.formated.flags);
zip_header.formated.method = __swap16(zip_header.formated.method);
@@ -264,7 +264,7 @@ extern int unzip_main(int argc, char **argv)
zip_header.formated.ucmpsize = __swap32(zip_header.formated.ucmpsize);
zip_header.formated.filename_len = __swap16(zip_header.formated.filename_len);
zip_header.formated.extra_len = __swap16(zip_header.formated.extra_len);
-#endif
+#endif /* BB_BIG_ENDIAN */
if ((zip_header.formated.method != 0) && (zip_header.formated.method != 8)) {
bb_error_msg_and_die("Unsupported compression method %d", zip_header.formated.method);
}
miscutils/hdparm.c+2 -2
@@ -48,8 +48,8 @@
#include <asm/byteorder.h>
-#if (__BYTE_ORDER == __BIG_ENDIAN) && !defined(__USE_XOPEN)
-#define __USE_XOPEN
+#if BB_BIG_ENDIAN && !defined(__USE_XOPEN)
+# define __USE_XOPEN
#endif
/* device types */
modutils/insmod.c+6 -6
@@ -268,8 +268,8 @@ extern int insmod_ng_main( int argc, char **argv);
#define CONFIG_USE_SINGLE
/* the SH changes have only been tested in =little endian= mode */
/* I'm not sure about big endian, so let's warn: */
-#if defined(__sh__) && defined(__BIG_ENDIAN__)
-#error insmod.c may require changes for use on big endian SH
+#if defined(__sh__) && BB_BIG_ENDIAN
+# error insmod.c may require changes for use on big endian SH
#endif
/* it may or may not work on the SH1/SH2... Error on those also */
#if ((!(defined(__SH3__) || defined(__SH4__) || defined(__SH5__)))) && (defined(__sh__))
@@ -511,10 +511,10 @@ static const int MODUTILS_OBJ_H = 1;
#include <elf.h>
#include <endian.h>
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-#define ELFDATAM ELFDATA2LSB
-#elif __BYTE_ORDER == __BIG_ENDIAN
-#define ELFDATAM ELFDATA2MSB
+#if BB_LITTLE_ENDIAN
+# define ELFDATAM ELFDATA2LSB
+#else
+# define ELFDATAM ELFDATA2MSB
#endif
#ifndef ElfW