Fix C++ function definitions
https://bugzilla.redhat.com/show_bug.cgi?id=1145190
This commit is contained in:
parent
e595baac19
commit
35397acbbc
80
libev-4.18-Fix-C-function-definitions.patch
Normal file
80
libev-4.18-Fix-C-function-definitions.patch
Normal file
@ -0,0 +1,80 @@
|
||||
From f5f182421a3a00f429b9041008a96988b7485157 Mon Sep 17 00:00:00 2001
|
||||
From: Mathieu Bridon <bochecha@fedoraproject.org>
|
||||
Date: Tue, 23 Sep 2014 10:20:51 +0200
|
||||
Subject: [PATCH] Fix C++ function definitions
|
||||
|
||||
This is a backport of the fix in upstream CVS.
|
||||
|
||||
http://lists.schmorp.de/pipermail/libev/2014q3/002441.html
|
||||
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1145190
|
||||
---
|
||||
Changes | 5 +++++
|
||||
ev.c | 2 +-
|
||||
ev.h | 4 ++--
|
||||
ev_vars.h | 5 +++--
|
||||
4 files changed, 11 insertions(+), 5 deletions(-)
|
||||
|
||||
diff --git a/Changes b/Changes
|
||||
index 6efc4a7..4c8377c 100644
|
||||
--- a/Changes
|
||||
+++ b/Changes
|
||||
@@ -15,6 +15,11 @@ TODO: document portability requirements for atomic pointer access
|
||||
TODO: possible cb aliasing?
|
||||
TODO: document requirements for function pointers and calling conventions.
|
||||
|
||||
+ - ev.h wasn't valid C++ anymore, which tripped compilers other than
|
||||
+ clang, msvc or gcc (analyzed by Raphael 'kena' Poss). Unfortunately,
|
||||
+ C++ doesn't support typedefs for function pointers fully, so the affected
|
||||
+ declarations have to spell out the types each time.
|
||||
+
|
||||
4.18 Fri Sep 5 17:55:26 CEST 2014
|
||||
- events on files were not always generated properly with the
|
||||
epoll backend (testcase by Assaf Inbal).
|
||||
diff --git a/ev.c b/ev.c
|
||||
index f94fbf5..d1ebdea 100644
|
||||
--- a/ev.c
|
||||
+++ b/ev.c
|
||||
@@ -2606,7 +2606,7 @@ ev_set_invoke_pending_cb (EV_P_ ev_loop_callback invoke_pending_cb) EV_THROW
|
||||
}
|
||||
|
||||
void
|
||||
-ev_set_loop_release_cb (EV_P_ ev_loop_callback_nothrow release, ev_loop_callback_nothrow acquire) EV_THROW
|
||||
+ev_set_loop_release_cb (EV_P_ void (*release)(EV_P) EV_THROW, void (*acquire)(EV_P) EV_THROW) EV_THROW
|
||||
{
|
||||
release_cb = release;
|
||||
acquire_cb = acquire;
|
||||
diff --git a/ev.h b/ev.h
|
||||
index 13d22ed..0600586 100644
|
||||
--- a/ev.h
|
||||
+++ b/ev.h
|
||||
@@ -660,8 +660,8 @@ EV_API_DECL void ev_set_userdata (EV_P_ void *data) EV_THROW;
|
||||
EV_API_DECL void *ev_userdata (EV_P) EV_THROW;
|
||||
typedef void (*ev_loop_callback)(EV_P);
|
||||
EV_API_DECL void ev_set_invoke_pending_cb (EV_P_ ev_loop_callback invoke_pending_cb) EV_THROW;
|
||||
-typedef void (*ev_loop_callback_nothrow)(EV_P) EV_THROW;
|
||||
-EV_API_DECL void ev_set_loop_release_cb (EV_P_ ev_loop_callback_nothrow release, ev_loop_callback_nothrow acquire) EV_THROW;
|
||||
+/* C++ doesn't allow the use of the ev_loop_callback typedef here, so we need to spell it out*/
|
||||
+EV_API_DECL void ev_set_loop_release_cb (EV_P_ void (*release)(EV_P) EV_THROW, void (*acquire)(EV_P) EV_THROW) EV_THROW;
|
||||
|
||||
EV_API_DECL unsigned int ev_pending_count (EV_P) EV_THROW; /* number of pending events, if any */
|
||||
EV_API_DECL void ev_invoke_pending (EV_P); /* invoke all pending watchers */
|
||||
diff --git a/ev_vars.h b/ev_vars.h
|
||||
index 98f7718..04d4db1 100644
|
||||
--- a/ev_vars.h
|
||||
+++ b/ev_vars.h
|
||||
@@ -194,8 +194,9 @@ VARx(unsigned int, loop_count) /* total number of loop iterations/blocks */
|
||||
VARx(unsigned int, loop_depth) /* #ev_run enters - #ev_run leaves */
|
||||
|
||||
VARx(void *, userdata)
|
||||
-VAR (release_cb, ev_loop_callback_nothrow release_cb)
|
||||
-VAR (acquire_cb, ev_loop_callback_nothrow acquire_cb)
|
||||
+/* C++ doesn't support the ev_loop_callback typedef here. stinks. */
|
||||
+VAR (release_cb, void (*release_cb)(EV_P) EV_THROW)
|
||||
+VAR (acquire_cb, void (*acquire_cb)(EV_P) EV_THROW)
|
||||
VAR (invoke_cb , ev_loop_callback invoke_cb)
|
||||
#endif
|
||||
|
||||
--
|
||||
2.1.0
|
||||
|
@ -4,7 +4,7 @@
|
||||
Name: libev
|
||||
Summary: High-performance event loop/event model with lots of features
|
||||
Version: 4.18
|
||||
Release: 1%{?dist}
|
||||
Release: 2%{?dist}
|
||||
License: BSD or GPLv2+
|
||||
URL: http://software.schmorp.de/pkg/libev.html
|
||||
Source0: http://dist.schmorp.de/libev/Attic/%{name}-%{version}.tar.gz
|
||||
@ -13,6 +13,7 @@ BuildRequires: autoconf automake libtool
|
||||
|
||||
Patch0: libev-4.18-Modernize-the-configure.ac.patch
|
||||
Patch1: libev-4.18-Respect-the-CFLAGS-if-defined.patch
|
||||
Patch2: libev-4.18-Fix-C-function-definitions.patch
|
||||
|
||||
%description
|
||||
Libev is modeled (very loosely) after libevent and the Event Perl
|
||||
@ -55,6 +56,7 @@ This package contains the source code for libev.
|
||||
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
|
||||
autoreconf -i
|
||||
|
||||
@ -104,6 +106,10 @@ install -p -m 0644 Changes ev.pod LICENSE README %{inst_srcdir}
|
||||
|
||||
|
||||
%changelog
|
||||
* Tue Sep 23 2014 Mathieu Bridon <bochecha@fedoraproject.org> - 4.18-2
|
||||
- Fix C++ function definitions
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1145190
|
||||
|
||||
* Mon Sep 08 2014 Mathieu Bridon <bochecha@fedoraproject.org> - 4.18-1
|
||||
- Update to 4.18.
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user