aboutsummaryrefslogtreecommitdiff
path: root/sysdeps
diff options
context:
space:
mode:
Diffstat (limited to 'sysdeps')
-rw-r--r--sysdeps/ieee754/ldbl-128/printf_fphex.c38
-rw-r--r--sysdeps/sparc/sparc64/Makefile1
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc32/Makefile3
-rw-r--r--sysdeps/unix/sysv/linux/sparc/sparc64/Makefile2
4 files changed, 33 insertions, 11 deletions
diff --git a/sysdeps/ieee754/ldbl-128/printf_fphex.c b/sysdeps/ieee754/ldbl-128/printf_fphex.c
index a6ca7a8424..5f20dba228 100644
--- a/sysdeps/ieee754/ldbl-128/printf_fphex.c
+++ b/sysdeps/ieee754/ldbl-128/printf_fphex.c
@@ -1,6 +1,6 @@
/* Print floating point number in hexadecimal notation according to
ISO C99.
- Copyright (C) 1997, 1998, 1999 Free Software Foundation, Inc.
+ Copyright (C) 1997, 1998, 1999, 2000 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
@@ -36,23 +36,43 @@ do { \
zero_mantissa = (num0|num1) == 0; \
\
if (sizeof (unsigned long int) > 6) \
- numstr = _itoa_word (num1, numbuf + sizeof numbuf, 16, \
- info->spec == 'A'); \
+ { \
+ numstr = _itoa_word (num1, numbuf + sizeof numbuf, 16, \
+ info->spec == 'A'); \
+ wnumstr = _itowa_word (num1, wnumbuf + sizeof wnumbuf, 16, \
+ info->spec == 'A'); \
+ } \
else \
- numstr = _itoa (num1, numbuf + sizeof numbuf, 16, \
- info->spec == 'A'); \
+ { \
+ numstr = _itoa (num1, numbuf + sizeof numbuf, 16, \
+ info->spec == 'A'); \
+ wnumstr = _itowa (num1, wnumbuf + sizeof wnumbuf, 16, \
+ info->spec == 'A'); \
+ } \
\
while (numstr > numbuf + (sizeof numbuf - 64 / 4)) \
- *--numstr = '0'; \
+ { \
+ *--numstr = '0'; \
+ *--wnumstr = L'0'; \
+ } \
\
if (sizeof (unsigned long int) > 6) \
- numstr = _itoa_word (num0, numstr, 16, info->spec == 'A'); \
+ { \
+ numstr = _itoa_word (num0, numstr, 16, info->spec == 'A'); \
+ wnumstr = _itowa_word (num0, wnumstr, 16, info->spec == 'A'); \
+ } \
else \
- numstr = _itoa (num0, numstr, 16, info->spec == 'A'); \
+ { \
+ numstr = _itoa (num0, numstr, 16, info->spec == 'A'); \
+ wnumstr = _itowa (num0, wnumstr, 16, info->spec == 'A'); \
+ } \
\
/* Fill with zeroes. */ \
while (numstr > numbuf + (sizeof numbuf - 112 / 4)) \
- *--numstr = '0'; \
+ { \
+ *--numstr = '0'; \
+ *--wnumstr = L'0'; \
+ } \
\
leading = fpnum.ldbl.ieee.exponent == 0 ? '0' : '1'; \
\
diff --git a/sysdeps/sparc/sparc64/Makefile b/sysdeps/sparc/sparc64/Makefile
index 96e5273ec5..312e59ea21 100644
--- a/sysdeps/sparc/sparc64/Makefile
+++ b/sysdeps/sparc/sparc64/Makefile
@@ -1,3 +1,2 @@
# The Sparc `long double' is a distinct type we support.
long-double-fcts = yes
-sysdep-CFLAGS += -fcall-used-g7
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
index 69c071752e..6892f58a04 100644
--- a/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
+++ b/sysdeps/unix/sysv/linux/sparc/sparc32/Makefile
@@ -1,8 +1,9 @@
asm-CPPFLAGS = -D__ASSEMBLY__
ASFLAGS-.os += -fPIC
+LD += -melf32_sparc
ifeq ($(subdir),misc)
-sysdep_routines += setfsgid setfsuid setresgid setresuid
+sysdep_routines += setfsgid setfsuid
endif
# When I get this to work, this is the right thing
diff --git a/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
new file mode 100644
index 0000000000..8181e42592
--- /dev/null
+++ b/sysdeps/unix/sysv/linux/sparc/sparc64/Makefile
@@ -0,0 +1,2 @@
+sysdep-CFLAGS += -fcall-used-g7
+LD += -melf64_sparc