aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorH.J. Lu <hjl.tools@gmail.com>2024-12-14 20:12:21 +0800
committerH.J. Lu <hjl.tools@gmail.com>2024-12-15 05:24:19 +0800
commit335ba9b6c1db7030264de7d9e38047f645326e54 (patch)
tree685db365cd22f38549c734ab2bc72c121ae9b784
parent65817569adf011b66d197c773df2d9337da5adb3 (diff)
downloadglibc-335ba9b6c1db7030264de7d9e38047f645326e54.zip
glibc-335ba9b6c1db7030264de7d9e38047f645326e54.tar.gz
glibc-335ba9b6c1db7030264de7d9e38047f645326e54.tar.bz2
Return EXIT_UNSUPPORTED if __builtin_add_overflow unavailable
Since GCC 4.9 doesn't have __builtin_add_overflow: In file included from tst-stringtable.c:180:0: stringtable.c: In function ‘stringtable_finalize’: stringtable.c:185:7: error: implicit declaration of function ‘__builtin_add_overflow’ [-Werror=implicit-function-declaration] else if (__builtin_add_overflow (previous->offset, ^ return EXIT_UNSUPPORTED for GCC 4.9 or older. Signed-off-by: H.J. Lu <hjl.tools@gmail.com> Reviewed-by: Sam James <sam@gentoo.org>
-rw-r--r--elf/tst-stringtable.c10
-rw-r--r--io/tst-utimensat-skeleton.c5
-rw-r--r--sysdeps/unix/sysv/linux/tst-getdents64.c7
-rw-r--r--time/tst-ctime.c10
-rw-r--r--time/tst-difftime.c10
-rw-r--r--time/tst-mktime4.c10
6 files changed, 52 insertions, 0 deletions
diff --git a/elf/tst-stringtable.c b/elf/tst-stringtable.c
index e18496f..a0e358f 100644
--- a/elf/tst-stringtable.c
+++ b/elf/tst-stringtable.c
@@ -17,6 +17,7 @@
#include <array_length.h>
#include <stdlib.h>
+#if __GNUC_PREREQ (5, 0)
#include <string.h>
#include <stringtable.h>
#include <support/check.h>
@@ -179,3 +180,12 @@ do_test (void)
#define _(arg) arg
#include "stringtable.c"
#include "stringtable_free.c"
+#else
+#include <support/test-driver.h>
+
+int
+main (void)
+{
+ return EXIT_UNSUPPORTED;
+}
+#endif
diff --git a/io/tst-utimensat-skeleton.c b/io/tst-utimensat-skeleton.c
index 290ed81..1386fa3 100644
--- a/io/tst-utimensat-skeleton.c
+++ b/io/tst-utimensat-skeleton.c
@@ -20,6 +20,7 @@
#include <inttypes.h>
#include <support/support.h>
#include <support/temp_file.h>
+#include <support/test-driver.h>
#include <stdio.h>
static int temp_fd = -1;
@@ -72,6 +73,7 @@ do_test (void)
for (int i = 0; i < array_length (tests); i++)
{
/* Check if we run on port with 32 bit time_t size. */
+#if __GNUC_PREREQ (5, 0)
time_t t;
if (__builtin_add_overflow (tests[i].v1, 0, &t)
|| __builtin_add_overflow (tests[i].v2, 0, &t))
@@ -80,6 +82,9 @@ do_test (void)
"time_t overflows\n", i, tests[i].v1, tests[i].v2);
continue;
}
+#else
+ return EXIT_UNSUPPORTED;
+#endif
if (tests[i].v1 >= 0x100000000LL && !y2106)
{
diff --git a/sysdeps/unix/sysv/linux/tst-getdents64.c b/sysdeps/unix/sysv/linux/tst-getdents64.c
index 3dd22a4..ba66d49 100644
--- a/sysdeps/unix/sysv/linux/tst-getdents64.c
+++ b/sysdeps/unix/sysv/linux/tst-getdents64.c
@@ -30,6 +30,7 @@
#include <sys/mman.h>
#include <unistd.h>
+#if __GNUC_PREREQ (5, 0)
/* Called by large_buffer_checks below. */
static void
large_buffer_check (int fd, char *large_buffer, size_t large_buffer_size)
@@ -85,6 +86,12 @@ do_test_large_size (void)
xclose (fd);
}
+#else
+static void
+do_test_large_size (void)
+{
+}
+#endif
static void
do_test_by_size (size_t buffer_size)
diff --git a/time/tst-ctime.c b/time/tst-ctime.c
index 8debf15..2042259 100644
--- a/time/tst-ctime.c
+++ b/time/tst-ctime.c
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include <support/check.h>
+#if __GNUC_PREREQ (5, 0)
static int
do_test (void)
{
@@ -70,3 +71,12 @@ do_test (void)
}
#include <support/test-driver.c>
+#else
+#include <support/test-driver.h>
+
+int
+main (void)
+{
+ return EXIT_UNSUPPORTED;
+}
+#endif
diff --git a/time/tst-difftime.c b/time/tst-difftime.c
index 5043d55..5a9a66b 100644
--- a/time/tst-difftime.c
+++ b/time/tst-difftime.c
@@ -19,6 +19,7 @@
#include <time.h>
#include <support/check.h>
+#if __GNUC_PREREQ (5, 0)
static void
test_difftime_helper (time_t t1, time_t t0, double exp_val)
{
@@ -54,3 +55,12 @@ do_test (void)
}
#include <support/test-driver.c>
+#else
+#include <support/test-driver.h>
+
+int
+main ()
+{
+ return EXIT_UNSUPPORTED;
+}
+#endif
diff --git a/time/tst-mktime4.c b/time/tst-mktime4.c
index 505d9fc..05c833c 100644
--- a/time/tst-mktime4.c
+++ b/time/tst-mktime4.c
@@ -20,6 +20,7 @@
#include <stdlib.h>
#include <support/check.h>
+#if __GNUC_PREREQ (5, 0)
const struct tm tm0 =
{
.tm_year = 70,
@@ -107,3 +108,12 @@ do_test (void)
}
#include <support/test-driver.c>
+#else
+#include <support/test-driver.h>
+
+int
+main (void)
+{
+ return EXIT_UNSUPPORTED;
+}
+#endif