Commit 58990c4d by Iain Buclaw Committed by Iain Buclaw

libphobos: Fix FAIL phobos.exp/core.time on CentOS 5.11, Linux 2.6.18

Merges upstream druntime e03164b5.

Reviewed-on: https://github.com/dlang/druntime/pull/2581

libphobos/ChangeLog:

2019-04-24  Iain Buclaw  <ibuclaw@gdcproject.org>

	PR d/89432
	* testsuite/lib/libphobos.exp (check_effective_target_linux_pre_2639):
	New proc.
	* testsuite/libphobos.druntime/druntime.exp: Add compiler flag
	-fversion=Linux_Pre_2639 if target is linux_pre_2639.
	* testsuite/libphobos.druntime_shared/druntime_shared.exp: Likewise.

From-SVN: r270554
parent 265e6a0a
2019-04-24 Iain Buclaw <ibuclaw@gdcproject.org> 2019-04-24 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/89432
* testsuite/lib/libphobos.exp (check_effective_target_linux_pre_2639):
New proc.
* testsuite/libphobos.druntime/druntime.exp: Add compiler flag
-fversion=Linux_Pre_2639 if target is linux_pre_2639.
* testsuite/libphobos.druntime_shared/druntime_shared.exp: Likewise.
2019-04-24 Iain Buclaw <ibuclaw@gdcproject.org>
PR d/88654 PR d/88654
* testsuite/lib/libphobos.exp (libphobos-dg-test): Check * testsuite/lib/libphobos.exp (libphobos-dg-test): Check
libphobos_skipped_test_p before running test. libphobos_skipped_test_p before running test.
......
513652173d6f02206be3ddaa2b6ed0b191ea4e3d e03164b5259a9f116eb91dfa5a18c192fa72e575
The first line of this file holds the git revision number of the last The first line of this file holds the git revision number of the last
merge done from the dlang/druntime repository. merge done from the dlang/druntime repository.
...@@ -2539,8 +2539,11 @@ unittest ...@@ -2539,8 +2539,11 @@ unittest
static bool clockSupported(ClockType c) static bool clockSupported(ClockType c)
{ {
version (Linux_Pre_2639) // skip CLOCK_BOOTTIME on older linux kernels // Skip unsupported clocks on older linux kernels, assume that only
return c != ClockType.second && c != ClockType.bootTime; // CLOCK_MONOTONIC and CLOCK_REALTIME exist, as that is the lowest
// common denominator supported by all versions of Linux pre-2.6.12.
version (Linux_Pre_2639)
return c == ClockType.normal || c == ClockType.precise;
else else
return c != ClockType.second; // second doesn't work with MonoTimeImpl return c != ClockType.second; // second doesn't work with MonoTimeImpl
......
...@@ -261,3 +261,20 @@ proc check_effective_target_libcurl_available { } { ...@@ -261,3 +261,20 @@ proc check_effective_target_libcurl_available { } {
int main (void) { return 0; } int main (void) { return 0; }
} "-lcurl"] } "-lcurl"]
} }
# Return true if the target is linux version < 2.6.39
proc check_effective_target_linux_pre_2639 { } {
if { ![istarget *-*-linux*] } {
return 0
}
if { [check_no_compiler_messages linux_pre_2639 assembly {
#include <linux/version.h>
#if !defined LINUX_VERSION_CODE || LINUX_VERSION_CODE < KERNEL_VERSION(2.6.39)
#error Yes, it is.
#endif
}] } {
return 0
}
return 1
}
...@@ -22,13 +22,19 @@ if { ![isnative] || ![is-effective-target static] } { ...@@ -22,13 +22,19 @@ if { ![isnative] || ![is-effective-target static] } {
# Gather a list of all tests. # Gather a list of all tests.
set tests [lsort [filter_libphobos_unittests [find $srcdir/../libdruntime "*.d"]]] set tests [lsort [filter_libphobos_unittests [find $srcdir/../libdruntime "*.d"]]]
set version_flags ""
if { [is-effective-target linux_pre_2639] } {
lappend version_flags "-fversion=Linux_Pre_2639"
}
# Initialize dg. # Initialize dg.
dg-init dg-init
# Main loop. # Main loop.
foreach test $tests { foreach test $tests {
set libphobos_test_name "$subdir/[dg-trim-dirname $srcdir/../libdruntime $test]" set libphobos_test_name "$subdir/[dg-trim-dirname $srcdir/../libdruntime $test]"
dg-runtest $test "" "-fmain -fbuilding-libphobos-tests" dg-runtest $test "" "-fmain -fbuilding-libphobos-tests $version_flags"
set libphobos_test_name "" set libphobos_test_name ""
} }
......
...@@ -22,6 +22,12 @@ if { ![isnative] || ![is-effective-target shared] } { ...@@ -22,6 +22,12 @@ if { ![isnative] || ![is-effective-target shared] } {
# Gather a list of all tests. # Gather a list of all tests.
set tests [lsort [filter_libphobos_unittests [find $srcdir/../libdruntime "*.d"]]] set tests [lsort [filter_libphobos_unittests [find $srcdir/../libdruntime "*.d"]]]
set version_flags ""
if { [is-effective-target linux_pre_2639] } {
lappend version_flags "-fversion=Linux_Pre_2639"
}
# Initialize dg. # Initialize dg.
dg-init dg-init
...@@ -29,7 +35,7 @@ dg-init ...@@ -29,7 +35,7 @@ dg-init
foreach test $tests { foreach test $tests {
set libphobos_test_name "$subdir/[dg-trim-dirname $srcdir/../libdruntime $test]" set libphobos_test_name "$subdir/[dg-trim-dirname $srcdir/../libdruntime $test]"
dg-runtest $test "-fversion=Shared -shared-libphobos" \ dg-runtest $test "-fversion=Shared -shared-libphobos" \
"-fmain -fbuilding-libphobos-tests -fno-moduleinfo" "-fmain -fbuilding-libphobos-tests -fno-moduleinfo $version_flags"
set libphobos_test_name "" set libphobos_test_name ""
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment