- 0.9.8
- x86_64 EL7: DFORCE_MONOTONIC_FIX aarch64 EL7: DFORCE_MONOTONIC_FIX and FORCE_PTHREAD_NONVER ppc64le EL7: DFORCE_MONOTONIC_FIX and FORCE_PTHREAD_NONVER ppc64le F30+ FORCE_PTHREAD_NONVER
This commit is contained in:
parent
5d291a7459
commit
44caf292ef
1
.gitignore
vendored
1
.gitignore
vendored
@ -1 +1,2 @@
|
|||||||
/libfaketime-0.9.6.tar.gz
|
/libfaketime-0.9.6.tar.gz
|
||||||
|
/libfaketime-0.9.8.tar.xz
|
||||||
|
@ -1,13 +0,0 @@
|
|||||||
diff --git a/src/libfaketime.c b/src/libfaketime.c
|
|
||||||
index 3ec372b..f70283b 100644
|
|
||||||
--- a/src/libfaketime.c
|
|
||||||
+++ b/src/libfaketime.c
|
|
||||||
@@ -1380,7 +1380,7 @@ void __attribute__ ((constructor)) ftpl_init(void)
|
|
||||||
real_clock_get_time = dlsym(RTLD_NEXT, "clock_get_time");
|
|
||||||
real_clock_gettime = apple_clock_gettime;
|
|
||||||
#else
|
|
||||||
- real_clock_gettime = dlsym(RTLD_NEXT, "clock_gettime");
|
|
||||||
+ real_clock_gettime = dlsym(RTLD_NEXT, "__clock_gettime");
|
|
||||||
#ifdef FAKE_TIMERS
|
|
||||||
real_timer_settime_22 = dlvsym(RTLD_NEXT, "timer_settime","GLIBC_2.2");
|
|
||||||
real_timer_settime_233 = dlvsym(RTLD_NEXT, "timer_settime","GLIBC_2.3.3");
|
|
@ -1,64 +0,0 @@
|
|||||||
From 628c70a67a94b3020cab79171545721dfd295fcd Mon Sep 17 00:00:00 2001
|
|
||||||
From: Mario Pareja <pareja.mario@gmail.com>
|
|
||||||
Date: Fri, 9 Jan 2015 18:15:53 +0000
|
|
||||||
Subject: [PATCH] Begin adding CLOCK_BOOTTIME support.
|
|
||||||
|
|
||||||
---
|
|
||||||
src/faketime_common.h | 2 ++
|
|
||||||
src/libfaketime.c | 9 ++++++++-
|
|
||||||
2 files changed, 10 insertions(+), 1 deletion(-)
|
|
||||||
|
|
||||||
diff --git a/src/faketime_common.h b/src/faketime_common.h
|
|
||||||
index ee0d627..7de6cd8 100644
|
|
||||||
--- a/src/faketime_common.h
|
|
||||||
+++ b/src/faketime_common.h
|
|
||||||
@@ -32,6 +32,8 @@ struct system_time_s
|
|
||||||
struct timespec mon;
|
|
||||||
/* System time according to CLOCK_MONOTONIC_RAW */
|
|
||||||
struct timespec mon_raw;
|
|
||||||
+ /* System time according to CLOCK_BOOTTIME */
|
|
||||||
+ struct timespec boot;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* Data shared among faketime-spawned processes */
|
|
||||||
diff --git a/src/libfaketime.c b/src/libfaketime.c
|
|
||||||
index f4a26be..121bbf6 100644
|
|
||||||
--- a/src/libfaketime.c
|
|
||||||
+++ b/src/libfaketime.c
|
|
||||||
@@ -208,7 +208,7 @@ static int cache_duration = 10; /* cache fake time input for 10 seconds */
|
|
||||||
* Static timespec to store our startup time, followed by a load-time library
|
|
||||||
* initialization declaration.
|
|
||||||
*/
|
|
||||||
-static struct system_time_s ftpl_starttime = {{0, -1}, {0, -1}, {0, -1}};
|
|
||||||
+static struct system_time_s ftpl_starttime = {{0, -1}, {0, -1}, {0, -1}, {0, -1}};
|
|
||||||
|
|
||||||
static char user_faked_time_fmt[BUFSIZ] = {0};
|
|
||||||
|
|
||||||
@@ -319,6 +319,7 @@ static void system_time_from_system (struct system_time_s * systime)
|
|
||||||
DONT_FAKE_TIME((*real_clock_gettime)(CLOCK_REALTIME, &systime->real));
|
|
||||||
DONT_FAKE_TIME((*real_clock_gettime)(CLOCK_MONOTONIC, &systime->mon));
|
|
||||||
DONT_FAKE_TIME((*real_clock_gettime)(CLOCK_MONOTONIC_RAW, &systime->mon_raw));
|
|
||||||
+ DONT_FAKE_TIME((*real_clock_gettime)(CLOCK_BOOTTIME, &systime->boot));
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1834,6 +1835,9 @@ int fake_clock_gettime(clockid_t clk_id, struct timespec *tp)
|
|
||||||
case CLOCK_MONOTONIC_RAW:
|
|
||||||
timespecsub(tp, &ftpl_starttime.mon_raw, &tmp_ts);
|
|
||||||
break;
|
|
||||||
+ case CLOCK_BOOTTIME:
|
|
||||||
+ timespecsub(tp, &ftpl_starttime.boot, &tmp_ts);
|
|
||||||
+ break;
|
|
||||||
default:
|
|
||||||
printf("Invalid clock_id for clock_gettime: %d", clk_id);
|
|
||||||
exit(EXIT_FAILURE);
|
|
||||||
@@ -1973,6 +1977,9 @@ int fake_clock_gettime(clockid_t clk_id, struct timespec *tp)
|
|
||||||
case CLOCK_MONOTONIC_RAW:
|
|
||||||
timespecsub(tp, &ftpl_starttime.mon_raw, &tdiff);
|
|
||||||
break;
|
|
||||||
+ case CLOCK_BOOTTIME:
|
|
||||||
+ timespecsub(tp, &ftpl_starttime.boot, &tdiff);
|
|
||||||
+ break;
|
|
||||||
default:
|
|
||||||
printf("Invalid clock_id for clock_gettime: %d", clk_id);
|
|
||||||
exit(EXIT_FAILURE);
|
|
26
libfaketime-0.9.8-FORCE_PTHREAD_NONVER.patch
Normal file
26
libfaketime-0.9.8-FORCE_PTHREAD_NONVER.patch
Normal file
@ -0,0 +1,26 @@
|
|||||||
|
From 108370f850e5efd18f4989370cdc6ea6a2f74206 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Wolfgang Hommel <wolfgang.hommel@unibw.de>
|
||||||
|
Date: Thu, 29 Aug 2019 09:55:04 +0200
|
||||||
|
Subject: [PATCH] Adds FORCE_PTHREAD_NONVER flag for platforms where pthread
|
||||||
|
functions are not intercepted
|
||||||
|
|
||||||
|
---
|
||||||
|
src/libfaketime.c | 2 +-
|
||||||
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/src/libfaketime.c b/src/libfaketime.c
|
||||||
|
index 5e7ebdf..b70a3d3 100644
|
||||||
|
--- a/src/libfaketime.c
|
||||||
|
+++ b/src/libfaketime.c
|
||||||
|
@@ -3157,7 +3157,7 @@ int pthread_cond_timedwait_232(pthread_cond_t *cond, pthread_mutex_t *mutex, con
|
||||||
|
}
|
||||||
|
|
||||||
|
__asm__(".symver pthread_cond_timedwait_225, pthread_cond_timedwait@GLIBC_2.2.5");
|
||||||
|
-#ifdef __ARM_ARCH
|
||||||
|
+#if defined __ARM_ARCH || defined FORCE_PTHREAD_NONVER
|
||||||
|
__asm__(".symver pthread_cond_timedwait_232, pthread_cond_timedwait@@");
|
||||||
|
__asm__(".symver pthread_cond_init_232, pthread_cond_init@@");
|
||||||
|
__asm__(".symver pthread_cond_destroy_232, pthread_cond_destroy@@");
|
||||||
|
--
|
||||||
|
2.21.0
|
||||||
|
|
@ -1,14 +1,15 @@
|
|||||||
Summary: Manipulate system time per process for testing purposes
|
Summary: Manipulate system time per process for testing purposes
|
||||||
Name: libfaketime
|
Name: libfaketime
|
||||||
Version: 0.9.6
|
Version: 0.9.8
|
||||||
Release: 9%{?dist}
|
Release: 3%{?dist}
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
Url: http://www.code-wizards.com/projects/libfaketime/
|
Url: https://github.com/wolfcw/libfaketime
|
||||||
Source: http://www.code-wizards.com/projects/%{name}/%{name}-%{version}.tar.gz
|
Source: libfaketime-0.9.8.tar.xz
|
||||||
Patch1: libfaketime-0.9.5-fix-infinite-recursion-on-real_clock_gettime.patch
|
Patch0: libfaketime-0.9.8-FORCE_PTHREAD_NONVER.patch
|
||||||
Patch2: libfaketime-0.9.6-boottime.patch
|
|
||||||
|
|
||||||
BuildRequires: gcc
|
BuildRequires: gcc
|
||||||
|
BuildRequires: perl-interpreter
|
||||||
|
BuildRequires: perl-Time-HiRes
|
||||||
%description
|
%description
|
||||||
libfaketime intercepts various system calls which programs use to
|
libfaketime intercepts various system calls which programs use to
|
||||||
retrieve the current date and time. It can then report faked dates and
|
retrieve the current date and time. It can then report faked dates and
|
||||||
@ -18,15 +19,29 @@ time system- wide.
|
|||||||
|
|
||||||
%prep
|
%prep
|
||||||
%setup -q
|
%setup -q
|
||||||
%patch1 -p1
|
%patch0 -p1
|
||||||
%patch2 -p1
|
|
||||||
# work around from upstream for autodetecting glibc version bug on i686
|
|
||||||
sed -i -e 's/__asm__(".symver timer_gettime_22/\/\/__asm__(".symver timer_gettime_22/' src/libfaketime.c
|
|
||||||
sed -i -e 's/__asm__(".symver timer_settime_22/\/\/__asm__(".symver timer_settime_22/' src/libfaketime.c
|
|
||||||
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
cd src ; CFLAGS="%{optflags} -Wno-nonnull-compare -Wno-strict-aliasing" make %{?_smp_mflags} \
|
cd src
|
||||||
|
%if 0%{?el7}
|
||||||
|
%ifarch x86_64
|
||||||
|
echo "old glibc https://github.com/wolfcw/libfaketime/issues/202"
|
||||||
|
export FAKETIME_COMPILE_CFLAGS="-DFORCE_MONOTONIC_FIX"
|
||||||
|
%endif
|
||||||
|
%ifarch aarch64 ppc64le
|
||||||
|
echo "old glibc and pthread_nonver https://github.com/wolfcw/libfaketime/issues/205"
|
||||||
|
export FAKETIME_COMPILE_CFLAGS="-DFORCE_MONOTONIC_FIX -DFORCE_PTHREAD_NONVER"
|
||||||
|
%endif
|
||||||
|
%else
|
||||||
|
%ifarch ppc64le
|
||||||
|
echo "pthread_nonver https://github.com/wolfcw/libfaketime/issues/204"
|
||||||
|
export FAKETIME_COMPILE_CFLAGS="-DFORCE_PTHREAD_NONVER"
|
||||||
|
%else
|
||||||
|
unset FAKETIME_COMPILE_CFLAGS
|
||||||
|
%endif
|
||||||
|
%endif
|
||||||
|
CFLAGS="%{optflags} -Wno-nonnull-compare -Wno-strict-aliasing" make %{?_smp_mflags} \
|
||||||
PREFIX="%{_prefix}" LIBDIRNAME="/%{_lib}/faketime" all
|
PREFIX="%{_prefix}" LIBDIRNAME="/%{_lib}/faketime" all
|
||||||
|
|
||||||
%check
|
%check
|
||||||
@ -46,6 +61,13 @@ chmod a+rx %{buildroot}/%{_libdir}/faketime/*.so.*
|
|||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Wed Aug 28 2019 Warren Togami <warren@blocksream.com> - 0.9.8-3
|
||||||
|
- 0.9.8
|
||||||
|
- x86_64 EL7: DFORCE_MONOTONIC_FIX
|
||||||
|
aarch64 EL7: DFORCE_MONOTONIC_FIX and FORCE_PTHREAD_NONVER
|
||||||
|
ppc64le EL7: DFORCE_MONOTONIC_FIX and FORCE_PTHREAD_NONVER
|
||||||
|
ppc64le F30+ FORCE_PTHREAD_NONVER
|
||||||
|
|
||||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.6-9
|
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9.6-9
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user