rpms/xorg-x11-server/F-12 xserver-1.7.1-libcrypto.patch, NONE, 1.1 xserver-1.7.1-sigaction.patch, NONE, 1.1 xorg-x11-server.spec, 1.503, 1.504
Adam Jackson
ajax at fedoraproject.org
Mon Nov 16 23:28:33 UTC 2009
Author: ajax
Update of /cvs/pkgs/rpms/xorg-x11-server/F-12
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv10977
Modified Files:
xorg-x11-server.spec
Added Files:
xserver-1.7.1-libcrypto.patch xserver-1.7.1-sigaction.patch
Log Message:
* Mon Nov 16 2009 Adam Jackson <ajax at redhat.com> 1.7.1-8
- xserver-1.7.1-libcrypto.patch: Avoid linking against libssl, which is huge
and drags in dependent libs we don't care about.
- xserver-1.7.1-sigaction.patch: Microoptimization to SIGIO handling.
xserver-1.7.1-libcrypto.patch:
configure.ac | 7 -------
1 file changed, 7 deletions(-)
--- NEW FILE xserver-1.7.1-libcrypto.patch ---
>From 8875112f5c57ec5d575e717c5638fbc919145efb Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax at redhat.com>
Date: Mon, 16 Nov 2009 18:01:26 -0500
Subject: [PATCH] configure: Only link against libcrypto
openssl.pc will link you against libssl, which we don't need, and which
brings in another seven libraries we also don't need. This is still
bogus, we're really only trying to get a SHA1 routine, we could link it
statically and be even better off.
---
configure.ac | 6 ------
1 files changed, 0 insertions(+), 6 deletions(-)
diff --git a/configure.ac b/configure.ac
index f69f97e..254d33d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1297,14 +1297,8 @@ if test "x$SHA1_LIB" = "x" ; then
fi
if test "x$SHA1_LIB" = "x" ; then
- PKG_CHECK_EXISTS([OPENSSL], [openssl], [HAVE_OPENSSL_PKC=yes],
- [HAVE_OPENSSL_PKC=no])
- if test "x$HAVE_OPENSSL_PKC" = xyes; then
- REQUIRED_LIBS="$REQUIRED_LIBS openssl"
- else
AC_CHECK_LIB([crypto], [SHA1_Init], [SHA1_LIB="-lcrypto"],
[AC_MSG_ERROR([OpenSSL must be installed in order to build the X server.])])
- fi
fi
PKG_CHECK_MODULES([XSERVERCFLAGS], [$REQUIRED_MODULES $REQUIRED_LIBS])
--
1.6.5.2
xserver-1.7.1-sigaction.patch:
sigio.c | 41 ++++++++++++++++++++++++++++++++++-------
1 file changed, 34 insertions(+), 7 deletions(-)
--- NEW FILE xserver-1.7.1-sigaction.patch ---
>From 645de09fc84482a55b5234312027efd007e53d8c Mon Sep 17 00:00:00 2001
From: Adam Jackson <ajax at redhat.com>
Date: Sat, 7 Nov 2009 15:29:05 -0500
Subject: [PATCH] xfree86: Use SA_SIGINFO if available for SIGIO handlers
siginfo_t gives us the file descriptor that raised the signal directly,
so we don't need to select() for it. This gets evdev event processing
down to exactly one syscall in the common case.
Signed-off-by: Adam Jackson <ajax at redhat.com>
---
hw/xfree86/os-support/shared/sigio.c | 40 ++++++++++++++++++++++++++++-----
1 files changed, 34 insertions(+), 6 deletions(-)
diff --git a/hw/xfree86/os-support/shared/sigio.c b/hw/xfree86/os-support/shared/sigio.c
index aed5654..4f1ec55 100644
--- a/hw/xfree86/os-support/shared/sigio.c
+++ b/hw/xfree86/os-support/shared/sigio.c
@@ -95,12 +95,11 @@ static int xf86SigIOMax;
static int xf86SigIOMaxFd;
static fd_set xf86SigIOMask;
-/*
- * SIGIO gives no way of discovering which fd signalled, select
- * to discover
- */
+#ifndef SA_SIGINFO
+
+/* plain signals have no way of discovering which fd signalled. */
static void
-xf86SIGIO (int sig)
+sigio_handler (int sig)
{
int i;
fd_set ready;
@@ -126,6 +125,27 @@ xf86SIGIO (int sig)
errno = save_errno;
}
+#else /* have SA_SIGINFO */
+
+/* siginfo passes the triggering fd in, no need to select() */
+static void
+sigio_sigaction(int sig, siginfo_t *si, void *ctx)
+{
+ int i;
+ int save_errno = errno;
+
+ for (i = 0; i < MAX_FUNCS; i++) {
+ if (xf86SigIOFuncs[i].f && xf86SigIOFuncs[i].fd == si->si_fd) {
+ (*xf86SigIOFuncs[i].f)(si->si_fd, xf86SigIOFuncs[i].closure);
+ break;
+ }
+ }
+
+ errno = save_errno;
+}
+
+#endif
+
static int
xf86IsPipe (int fd)
{
@@ -164,6 +184,9 @@ xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *closure)
xf86Msg(X_WARNING, "fcntl(%d, F_SETOWN): %s\n",
fd, strerror(errno));
} else {
+#ifdef SA_SIGINFO
+ fcntl(fd, F_SETSIG, SIGIO);
+#endif
installed = TRUE;
}
}
@@ -184,8 +207,13 @@ xf86InstallSIGIOHandler(int fd, void (*f)(int, void *), void *closure)
}
sigemptyset(&sa.sa_mask);
sigaddset(&sa.sa_mask, SIGIO);
+#ifndef SA_SIGINFO
sa.sa_flags = 0;
- sa.sa_handler = xf86SIGIO;
+ sa.sa_handler = sigio_handler;
+#else
+ sa.sa_flags = SA_SIGINFO;
+ sa.sa_sigaction = sigio_sigaction;
+#endif
sigaction(SIGIO, &sa, &osa);
xf86SigIOFuncs[i].fd = fd;
xf86SigIOFuncs[i].closure = closure;
--
1.6.5.rc2
Index: xorg-x11-server.spec
===================================================================
RCS file: /cvs/pkgs/rpms/xorg-x11-server/F-12/xorg-x11-server.spec,v
retrieving revision 1.503
retrieving revision 1.504
diff -u -p -r1.503 -r1.504
--- xorg-x11-server.spec 6 Nov 2009 22:35:21 -0000 1.503
+++ xorg-x11-server.spec 16 Nov 2009 23:28:32 -0000 1.504
@@ -19,7 +19,7 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.7.1
-Release: 7%{dist}
+Release: 8%{dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X
@@ -79,6 +79,8 @@ Patch6048: xserver-1.7.0-exa-fix-mixed.p
Patch6049: xserver-1.7.1-multilib.patch
Patch6050: xserver-1.7.1-window-pictures.patch
Patch6051: xserver-1.7.1-gamma-kdm-fix.patch
+Patch6052: xserver-1.7.1-libcrypto.patch
+Patch6053: xserver-1.7.1-sigaction.patch
%define moduledir %{_libdir}/xorg/modules
%define drimoduledir %{_libdir}/dri
@@ -118,7 +120,6 @@ BuildRequires: libXi-devel libXpm-devel
# Broken, this is global, should be Xephyr-only
BuildRequires: libXv-devel
-# openssl? really?
BuildRequires: pixman-devel >= 0.15.14
BuildRequires: libpciaccess-devel >= 0.10.6-1 openssl-devel byacc flex
BuildRequires: mesa-libGL-devel >= 7.6-0.6
@@ -507,6 +508,11 @@ rm -rf $RPM_BUILD_ROOT
%{xserver_source_dir}
%changelog
+* Mon Nov 16 2009 Adam Jackson <ajax at redhat.com> 1.7.1-8
+- xserver-1.7.1-libcrypto.patch: Avoid linking against libssl, which is huge
+ and drags in dependent libs we don't care about.
+- xserver-1.7.1-sigaction.patch: Microoptimization to SIGIO handling.
+
* Fri Nov 06 2009 Adam Jackson <ajax at redhat.com>
- Fix the previous changelog entry to name the right patch
More information about the fedora-extras-commits
mailing list