aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog4
-rw-r--r--gcc/doc/sourcebuild.texi4
-rw-r--r--gcc/testsuite/ChangeLog9
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/920501-8.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/930513-1.c2
-rw-r--r--gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.x4
-rw-r--r--gcc/testsuite/gcc.dg/torture/builtin-sprintf.c3
-rw-r--r--gcc/testsuite/lib/target-supports.exp5
8 files changed, 32 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 2d7bcb8..fd5e8c2 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,7 @@
+2018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * doc/sourcebuild.texi: Document check_effective_target_newlib_nano_io.
+
2018-11-26 Jakub Jelinek <jakub@redhat.com>
PR target/88195
diff --git a/gcc/doc/sourcebuild.texi b/gcc/doc/sourcebuild.texi
index b8ab0ee..6a81b17 100644
--- a/gcc/doc/sourcebuild.texi
+++ b/gcc/doc/sourcebuild.texi
@@ -2152,6 +2152,10 @@ Target supports @code{mmap}.
@item newlib
Target supports Newlib.
+@item newlib_nano_io
+GCC was configured with @code{--enable-newlib-nano-formatted-io}, which reduces
+the code size of Newlib formatted I/O functions.
+
@item pow10
Target provides @code{pow10} function.
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 47f8b19..c617d27 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,12 @@
+2018-11-26 Jozef Lawrynowicz <jozef.l@mittosystems.com>
+
+ * lib/target-supports.exp (check_effective_target_newlib_nano_io): New.
+ * gcc.c-torture/execute/920501-8.c: Register undefined linker symbol
+ _printf_float for newlib_nano_io target.
+ * gcc.c-torture/execute/930513-1.c: Likewise.
+ * gcc.dg/torture/builtin-sprintf.c: Likewise.
+ * gcc.c-torture/execute/ieee/920810-1.x: New.
+
2018-11-26 Jakub Jelinek <jakub@redhat.com>
PR target/88195
diff --git a/gcc/testsuite/gcc.c-torture/execute/920501-8.c b/gcc/testsuite/gcc.c-torture/execute/920501-8.c
index 62780a0..7e4fa17 100644
--- a/gcc/testsuite/gcc.c-torture/execute/920501-8.c
+++ b/gcc/testsuite/gcc.c-torture/execute/920501-8.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-Wl,-u,_printf_float" { target newlib_nano_io } } */
+
#include <stdio.h>
#include <stdarg.h>
diff --git a/gcc/testsuite/gcc.c-torture/execute/930513-1.c b/gcc/testsuite/gcc.c-torture/execute/930513-1.c
index 4544471..f163007 100644
--- a/gcc/testsuite/gcc.c-torture/execute/930513-1.c
+++ b/gcc/testsuite/gcc.c-torture/execute/930513-1.c
@@ -1,3 +1,5 @@
+/* { dg-additional-options "-Wl,-u,_printf_float" { target newlib_nano_io } } */
+
#include <stdio.h>
char buf[2];
diff --git a/gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.x b/gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.x
new file mode 100644
index 0000000..8edec730
--- /dev/null
+++ b/gcc/testsuite/gcc.c-torture/execute/ieee/920810-1.x
@@ -0,0 +1,4 @@
+if { [check_effective_target_newlib_nano_io] } {
+ lappend additional_flags "-Wl,-u,_printf_float"
+}
+return 0
diff --git a/gcc/testsuite/gcc.dg/torture/builtin-sprintf.c b/gcc/testsuite/gcc.dg/torture/builtin-sprintf.c
index 6f8b7a9..5684fd7 100644
--- a/gcc/testsuite/gcc.dg/torture/builtin-sprintf.c
+++ b/gcc/testsuite/gcc.dg/torture/builtin-sprintf.c
@@ -1,6 +1,7 @@
/* PR tree-optimization/86274 - SEGFAULT when logging std::to_string(NAN)
{ dg-do run }
- { dg-options "-O2 -Wall" } */
+ { dg-options "-O2 -Wall" }
+ { dg-additional-options "-Wl,-u,_printf_float" { target newlib_nano_io } } */
#define X "0xdeadbeef"
#define nan(x) __builtin_nan (x)
diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp
index fe71691..7bfd5c3 100644
--- a/gcc/testsuite/lib/target-supports.exp
+++ b/gcc/testsuite/lib/target-supports.exp
@@ -6710,6 +6710,11 @@ proc check_effective_target_newlib {} {
}]
}
+# Return true if GCC was configured with --enable-newlib-nano-formatted-io
+proc check_effective_target_newlib_nano_io { } {
+ return [check_configured_with "--enable-newlib-nano-formatted-io"]
+}
+
# Some newlib versions don't provide a frexpl and instead depend
# on frexp to implement long double conversions in their printf-like
# functions. This leads to broken results. Detect such versions here.