aboutsummaryrefslogtreecommitdiff
path: root/string
diff options
context:
space:
mode:
Diffstat (limited to 'string')
-rw-r--r--string/Makefile3
-rw-r--r--string/bits/endian.h49
-rw-r--r--string/endian.h39
3 files changed, 57 insertions, 34 deletions
diff --git a/string/Makefile b/string/Makefile
index 52fe28207c..f01b34509a 100644
--- a/string/Makefile
+++ b/string/Makefile
@@ -25,7 +25,8 @@ include ../Makeconfig
headers := string.h bits/string_fortified.h \
strings.h bits/strings_fortified.h \
byteswap.h bits/byteswap.h \
- endian.h bits/endian.h bits/uintn-identity.h \
+ endian.h bits/endian.h bits/endianness.h \
+ bits/uintn-identity.h \
memory.h argz.h envz.h
routines := strcat strchr strcmp strcoll strcpy strcspn \
diff --git a/string/bits/endian.h b/string/bits/endian.h
new file mode 100644
index 0000000000..2217990cde
--- /dev/null
+++ b/string/bits/endian.h
@@ -0,0 +1,49 @@
+/* Endian macros for string.h functions
+ Copyright (C) 1992-2019 Free Software Foundation, Inc.
+ This file is part of the GNU C Library.
+
+ The GNU C Library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ The GNU C Library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with the GNU C Library; if not, see
+ <http://www.gnu.org/licenses/>. */
+
+#ifndef _BITS_ENDIAN_H
+#define _BITS_ENDIAN_H 1
+
+/* Definitions for byte order, according to significance of bytes,
+ from low addresses to high addresses. The value is what you get by
+ putting '4' in the most significant byte, '3' in the second most
+ significant byte, '2' in the second least significant byte, and '1'
+ in the least significant byte, and then writing down one digit for
+ each byte, starting with the byte at the lowest address at the left,
+ and proceeding to the byte with the highest address at the right. */
+
+#define __LITTLE_ENDIAN 1234
+#define __BIG_ENDIAN 4321
+#define __PDP_ENDIAN 3412
+
+/* This file defines `__BYTE_ORDER' for the particular machine. */
+#include <bits/endianness.h>
+
+/* Some machines may need to use a different endianness for floating point
+ values. */
+#ifndef __FLOAT_WORD_ORDER
+# define __FLOAT_WORD_ORDER __BYTE_ORDER
+#endif
+
+#if __BYTE_ORDER == __LITTLE_ENDIAN
+# define __LONG_LONG_PAIR(HI, LO) LO, HI
+#elif __BYTE_ORDER == __BIG_ENDIAN
+# define __LONG_LONG_PAIR(HI, LO) HI, LO
+#endif
+
+#endif /* bits/endian.h */
diff --git a/string/endian.h b/string/endian.h
index 17e4e893fb..0eb534e434 100644
--- a/string/endian.h
+++ b/string/endian.h
@@ -20,42 +20,15 @@
#include <features.h>
-/* Definitions for byte order, according to significance of bytes,
- from low addresses to high addresses. The value is what you get by
- putting '4' in the most significant byte, '3' in the second most
- significant byte, '2' in the second least significant byte, and '1'
- in the least significant byte, and then writing down one digit for
- each byte, starting with the byte at the lowest address at the left,
- and proceeding to the byte with the highest address at the right. */
-
-#define __LITTLE_ENDIAN 1234
-#define __BIG_ENDIAN 4321
-#define __PDP_ENDIAN 3412
-
-/* This file defines `__BYTE_ORDER' for the particular machine. */
+/* Get the definitions of __*_ENDIAN, __BYTE_ORDER, and __FLOAT_WORD_ORDER. */
#include <bits/endian.h>
-/* Some machines may need to use a different endianness for floating point
- values. */
-#ifndef __FLOAT_WORD_ORDER
-# define __FLOAT_WORD_ORDER __BYTE_ORDER
-#endif
-
-#ifdef __USE_MISC
-# define LITTLE_ENDIAN __LITTLE_ENDIAN
-# define BIG_ENDIAN __BIG_ENDIAN
-# define PDP_ENDIAN __PDP_ENDIAN
-# define BYTE_ORDER __BYTE_ORDER
-#endif
-
-#if __BYTE_ORDER == __LITTLE_ENDIAN
-# define __LONG_LONG_PAIR(HI, LO) LO, HI
-#elif __BYTE_ORDER == __BIG_ENDIAN
-# define __LONG_LONG_PAIR(HI, LO) HI, LO
-#endif
-
+#define LITTLE_ENDIAN __LITTLE_ENDIAN
+#define BIG_ENDIAN __BIG_ENDIAN
+#define PDP_ENDIAN __PDP_ENDIAN
+#define BYTE_ORDER __BYTE_ORDER
-#if defined __USE_MISC && !defined __ASSEMBLER__
+#ifndef __ASSEMBLER__
/* Conversion interfaces. */
# include <bits/byteswap.h>
# include <bits/uintn-identity.h>