mirror of
https://sourceware.org/git/glibc.git
synced 2025-01-15 21:40:05 +00:00
4745f4c1ca
I noticed that the totalorder compat tests mixed TEST_COMPAT conditions using COMPAT_VER (computed as the first symbol version for the symbol being tested) and those with a hardcoded GLIBC_2_25. COMPAT_VER is logically correct here, so this patch changes the tests to use it. GLIBC_2_25 is harmless at present (even for _FloatN / _FloatNx functions added in later glibc versions). However, if in future we support _Float16 functions in glibc for any existing configuration, the test using GLIBC_2_25 would get things wrong (wrongly think that there are compat versions of totalorderf16 and totalordermagf16 to test). (The actual definitions of the compat / versioned symbols for the totalorder functions make no attempt to deal with the possibility of libm function support for a new floating-point format, already supported for other architectures in glibc, being added in some glibc configuration in future, for which the only vaguely plausible case would be if some architecture gets _Float128 support it previously lacked; this is much like functions added after glibc 2.4 not generally attempting to deal with compat support for long double changing away from having the same format as double.) Tested for x86_64, and with build-many-glibcs.py. * math/libm-test-compat_totalorder.inc (do_test) [TEST_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)]: Change condition to [TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31)]. * math/libm-test-compat_totalordermag.inc (do_test) [TEST_COMPAT (libm, GLIBC_2_25, GLIBC_2_31)]: Likewise.
57 lines
1.6 KiB
C++
57 lines
1.6 KiB
C++
/* Test totalordermag compat symbol.
|
|
Copyright (C) 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/>. */
|
|
|
|
#include <shlib-compat.h>
|
|
#include <first-versions.h>
|
|
#define COMPAT_TEST
|
|
#include "libm-test-totalordermag.c"
|
|
|
|
#define CONCATX(x, y) x ## y
|
|
#define CONCAT(x, y) CONCATX (x, y)
|
|
#define COMPAT_VER CONCAT (FIRST_VERSION_libm_, FUNC_TEST (totalordermag))
|
|
|
|
#if TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31)
|
|
|
|
int FUNC_TEST (compat_totalordermag) (FLOAT, FLOAT);
|
|
compat_symbol_reference (libm,
|
|
FUNC_TEST (compat_totalordermag),
|
|
FUNC_TEST (totalordermag),
|
|
COMPAT_VER);
|
|
|
|
static void
|
|
compat_totalordermag_test (void)
|
|
{
|
|
ALL_RM_TEST (compat_totalordermag, 1, totalordermag_test_data, RUN_TEST_LOOP_ff_b, END);
|
|
}
|
|
|
|
#endif
|
|
|
|
static void
|
|
do_test (void)
|
|
{
|
|
#if TEST_COMPAT (libm, COMPAT_VER, GLIBC_2_31)
|
|
compat_totalordermag_test ();
|
|
#endif
|
|
}
|
|
|
|
/*
|
|
* Local Variables:
|
|
* mode:c
|
|
* End:
|
|
*/
|