changeset 19dc2b26eefa in /z/repo/gem5
details: http://repo.gem5.org/gem5?cmd=changeset;node=19dc2b26eefa
description:
        scons, kvm: Check for the presence of POSIX timers

        The kvm-based CPU module requires support for POSIX timers. This
        changeset adds a check for POSIX timers and ensures that gem5 is
        linked with librt if necessary. KVM support is disabled if POSIX
        timers are not supported by the host. This fixes a compilation issue
        for some glibc versions where clock_nanosleep and timer_create are in
        different libraries.

diffstat:

 SConstruct |  8 ++++++++
 1 files changed, 8 insertions(+), 0 deletions(-)

diffs (25 lines):

diff -r 0392ef94d766 -r 19dc2b26eefa SConstruct
--- a/SConstruct        Tue Oct 01 15:19:56 2013 +0200
+++ b/SConstruct        Tue Oct 01 15:56:47 2013 +0200
@@ -913,6 +913,10 @@
     conf.CheckLibWithHeader('rt', 'time.h', 'C',
                             'clock_nanosleep(0,0,NULL,NULL);')
 
+have_posix_timers = \
+    conf.CheckLibWithHeader([None, 'rt'], [ 'time.h', 'signal.h' ], 'C',
+                            'timer_create(CLOCK_MONOTONIC, NULL, NULL);')
+
 if conf.CheckLib('tcmalloc'):
     main.Append(CCFLAGS=main['TCMALLOC_CCFLAGS'])
 elif conf.CheckLib('tcmalloc_minimal'):
@@ -1224,6 +1228,10 @@
         if not have_kvm:
             print "Warning: Can not enable KVM, host seems to lack KVM support"
             env['USE_KVM'] = False
+        elif not have_posix_timers:
+            print "Warning: Can not enable KVM, host seems to lack support " \
+                "for POSIX timers"
+            env['USE_KVM'] = False
         elif not is_isa_kvm_compatible(env['TARGET_ISA']):
             print "Info: KVM support disabled due to unsupported host and " \
                 "target ISA combination"
_______________________________________________
gem5-dev mailing list
[email protected]
http://m5sim.org/mailman/listinfo/gem5-dev

Reply via email to