diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2024-07-11 08:05:33 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2024-07-11 08:05:33 +0000 |
commit | 9da7e8edf2266881d020c509ea9a16d9584c3e59 (patch) | |
tree | b2338e29df2b8ce782ca7d6d20306079548f34c4 /dist/libxcb | |
parent | 741167747bb978bed04ee56cb9911a8aabb8f3d4 (diff) |
Update to libxcb 1.17.0
Diffstat (limited to 'dist/libxcb')
-rw-r--r-- | dist/libxcb/ChangeLog | 441 | ||||
-rw-r--r-- | dist/libxcb/Makefile.am | 3 | ||||
-rw-r--r-- | dist/libxcb/autogen.sh | 11 | ||||
-rw-r--r-- | dist/libxcb/configure.ac | 25 | ||||
-rw-r--r-- | dist/libxcb/doc/tutorial/index.html | 4 | ||||
-rw-r--r-- | dist/libxcb/m4/libtool.m4 | 232 | ||||
-rw-r--r-- | dist/libxcb/m4/ltoptions.m4 | 4 | ||||
-rw-r--r-- | dist/libxcb/m4/ltsugar.m4 | 2 | ||||
-rw-r--r-- | dist/libxcb/m4/ltversion.m4 | 13 | ||||
-rw-r--r-- | dist/libxcb/m4/lt~obsolete.m4 | 4 | ||||
-rw-r--r-- | dist/libxcb/src/Makefile.am | 8 | ||||
-rw-r--r-- | dist/libxcb/src/c_client.py | 15 | ||||
-rw-r--r-- | dist/libxcb/src/xcb_auth.c | 4 | ||||
-rw-r--r-- | dist/libxcb/src/xcb_conn.c | 8 | ||||
-rw-r--r-- | dist/libxcb/src/xcb_util.c | 153 | ||||
-rw-r--r-- | dist/libxcb/tests/check_public.c | 49 | ||||
-rw-r--r-- | dist/libxcb/xcb-dbe.pc.in | 11 | ||||
-rw-r--r-- | dist/libxcb/xcb-present.pc.in | 2 |
18 files changed, 771 insertions, 218 deletions
diff --git a/dist/libxcb/ChangeLog b/dist/libxcb/ChangeLog index 8722e5a52..fb8275669 100644 --- a/dist/libxcb/ChangeLog +++ b/dist/libxcb/ChangeLog @@ -1,3 +1,444 @@ +commit 622152ee42a310876f10602601206954b8d0613e +Author: Matt Turner <mattst88@gmail.com> +Date: Fri Apr 12 12:35:55 2024 -0400 + + libxcb 1.17.0 + +commit 4574ab269b082bf412e1b6fb5f09daf8134acd0b +Author: Matt Turner <mattst88@gmail.com> +Date: Fri Apr 12 12:35:32 2024 -0400 + + configure.ac: Require xcb-proto >= 1.17.0 + + Signed-off-by: Matt Turner <mattst88@gmail.com> + +commit b78d304531bfe2359baf40db06099d9158d398d4 +Author: Uli Schlachter <psychon@znc.in> +Date: Sun Sep 17 12:43:43 2023 +0200 + + Always write C code in UTF-8 + + Some people apparently use non-utf8 locales and this caused errors when + xcb-proto started using some "fancy" quote marks. Fix this by always + using utf8 encoding. + + Fixes: https://gitlab.freedesktop.org/xorg/lib/libxcb/-/issues/72 + Signed-off-by: Uli Schlachter <psychon@znc.in> + +commit 389f22d1cb53e47337e96d9f78a3ef0001e8e588 +Author: Erik Kurzinger <ekurzinger@nvidia.com> +Date: Wed Mar 20 07:06:01 2024 -0700 + + Add xcb-dri3 dependency to xcb-present.pc.in + + Present version 1.4 introduces a dependency on DRI3 for the DRI3Syncobj + protocol type. + + Signed-off-by: Erik Kurzinger <ekurzinger@nvidia.com> + +commit 86a478032ba93f30adbc0ce96eecd3420fdf7ed1 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Sat Mar 2 12:01:54 2024 -0800 + + xcb_popcount: Use __builtin_popcount if compiler supports it + + If the compiler knows of a better implementation for counting the number + of bits set in a word for the target CPU, let it use that, instead of the + classic algorithm optimized for PDP-6. + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit c268499c305317d2e9a67cc590c9147e11438fc7 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Sat Mar 2 11:47:47 2024 -0800 + + tests: fix -Werror=discarded-qualifiers errors in check_public.c + + check_public.c: In function ‘parse_display_pass’: + check_public.c:32:32: error: passing argument 1 of ‘putenv’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] + 32 | putenv("DISPLAY="); + | ^~~~~~~~~~ + In file included from check_public.c:4: + /usr/include/stdlib.h:148:19: note: expected ‘char *’ but argument is of type ‘const char *’ + 148 | extern int putenv(char *); + | ^~~~~~ + check_public.c:57:16: error: passing argument 1 of ‘putenv’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] + 57 | putenv("DISPLAY="); + | ^~~~~~~~~~ + /usr/include/stdlib.h:148:19: note: expected ‘char *’ but argument is of type ‘const char *’ + 148 | extern int putenv(char *); + | ^~~~~~ + check_public.c: In function ‘parse_display_fail’: + check_public.c:73:32: error: passing argument 1 of ‘putenv’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] + 73 | putenv("DISPLAY="); + | ^~~~~~~~~~ + /usr/include/stdlib.h:148:19: note: expected ‘char *’ but argument is of type ‘const char *’ + 148 | extern int putenv(char *); + | ^~~~~~ + check_public.c:99:16: error: passing argument 1 of ‘putenv’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] + 99 | putenv("DISPLAY="); + | ^~~~~~~~~~ + /usr/include/stdlib.h:148:19: note: expected ‘char *’ but argument is of type ‘const char *’ + 148 | extern int putenv(char *); + | ^~~~~~ + check_public.c: In function ‘public_suite’: + check_public.c:244:16: error: passing argument 1 of ‘putenv’ discards ‘const’ qualifier from pointer target type [-Werror=discarded-qualifiers] + 244 | putenv("DISPLAY="); + | ^~~~~~~~~~ + /usr/include/stdlib.h:148:19: note: expected ‘char *’ but argument is of type ‘const char *’ + 148 | extern int putenv(char *); + | ^~~~~~ + cc1: all warnings being treated as errors + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit c671b9b30aecada4e43cb48e0dee46d19fb5cb9c +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Sat Mar 2 11:13:37 2024 -0800 + + libxcb 1.16.1 + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 3c946010c8521497b0fba2c8bc9bde184622345a +Author: Fergus Dall <sidereal@google.com> +Date: Tue Nov 7 17:42:42 2023 +1100 + + Enable large file support + + Signed-off-by: Fergus Dall <sidereal@google.com> + +commit 02a7bbed391859c79864b9aacf040d84f103d38a +Author: Peter Williams <peter@newton.cx> +Date: Thu Aug 24 21:50:29 2023 -0400 + + Fix compilation on Windows + + Merge request !30 broke compilation on Windows by introducing unbalanced + curly braces. This change restores the previous behavior on Windows: + only TCP is supported. + +commit 18c3f055e7c02db6f15ae56f6995639635d1b055 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Sun Aug 20 11:34:31 2023 -0700 + + gitlab CI: use latest xcbproto from git to build against + + Closes issue #70 + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 453115f7eeb694de9f41ea842a29bbb31b90c8dd +Author: Thomas Klausner <wiz@gatalith.at> +Date: Sat Aug 19 19:34:51 2023 +0200 + + configure.ac: drop `pthread-stubs` dependency on NetBSD + +commit f11691a09893d2329948521e32a18c13b0b03d01 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Sun Aug 20 10:22:19 2023 -0700 + + gitlab CI: regenerate container used for builds + + This updates the included xcb-proto to the newly required 1.16. + As explained in issue #70, this is a quick workaround, not the + long-term fix for this problem. + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit cc4b93c9cd93bad15b7106747b0213e4b9c53a1c +Author: Matt Turner <mattst88@gmail.com> +Date: Wed Aug 16 16:09:50 2023 -0400 + + libxcb 1.16 + + Signed-off-by: Matt Turner <mattst88@gmail.com> + +commit 1519334652837cb7b2a8f8117628ea3cc744f7cb +Author: Matt Turner <mattst88@gmail.com> +Date: Wed Aug 16 16:08:46 2023 -0400 + + configure.ac: Require xcb-proto >= 1.16.0 + + Signed-off-by: Matt Turner <mattst88@gmail.com> + +commit 038636786ad1914f3daf3503ae9611f40dffbb8f +Author: Ilya Pominov <ipominov@astralinux.ru> +Date: Sun Apr 2 11:35:16 2023 +0300 + + c_client: Fix crash in xcb_randr_set_monitor + + Take into account c_need_sizeof when evaluating + xcb_protocol_request_t.count + + Incorrect xcb_protocol_request_t.count causes a segmentation fault when + calling functions: + - xcb_randr_set_monitor{_checked} + - xcb_input_change_feedback_control{_checked} + - xcb_input_change_device_control{_unchecked} + + Steps to reproduce: + Call xcb_randr_set_monitor() with valid arguments + + OBSERVED RESULT + Segmentation fault + ``` + Process terminating with default action of signal 11 (SIGSEGV) + Access not within mapped region at address 0x780 + at 0x4852925: memmove (in /usr/libexec/valgrind/vgpreload_memcheck- + amd64-linux.so) + by 0x486967C: memcpy (string_fortified.h:29) + by 0x486967C: send_request (xcb_out.c:59) + by 0x486967C: send_request (xcb_out.c:46) + by 0x486967C: xcb_send_request_with_fds64 (xcb_out.c:338) + by 0x48699FC: xcb_send_request (xcb_out.c:359) + by 0x4891F11: xcb_randr_set_monitor_checked (randr.c:5350) + ``` + + EXPECTED RESULT + Function returns cookie + + Amend: 77b594f9583ea0247ff27130316d8e045da7f921 + + Signed-off-by: Ilya Pominov <ipominov@astralinux.ru> + +commit 8935793f1f3751a6aa9d78955c7d6236177986de +Author: Demi Marie Obenour <demiobenour@gmail.com> +Date: Sat Mar 25 15:27:33 2023 -0400 + + Add tests for unix socket parsing + + Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> + +commit 095255531b90f0b442e6ca41fb3752a058562d07 +Author: Demi Marie Obenour <demiobenour@gmail.com> +Date: Fri Aug 12 22:02:02 2022 -0400 + + DISPLAY starting with / or unix: is always a socket path + + If DISPLAY starts with / or unix:, do not check for anything but a full + filesystem socket path. In particular, abstract AF_UNIX sockets and TCP + sockets will not be used in this case. Also be stricter about parsing + the screen part of /path.screen displays, and bail out after all stat() + errors other than ENOENT. + + Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> + +commit ccdef1a8a5b6956a3fb7115d634db213433dca75 +Author: Demi Marie Obenour <demiobenour@gmail.com> +Date: Sun Jul 3 17:57:11 2022 -0400 + + Allow full paths to sockets on non-macOS + + When combined with xorg/lib/libxtrans!7, this allows CVE-2020-25697 to + be mitigated by placing the AF_UNIX socket in a secure directory on the + filesystem. + + This enables HAVE_LAUNCHD unconditionally and deletes the configure + switch. + + Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> + +commit 18e109d755c5ce18157fdabb6de8ee6845b348ff +Author: Matthieu Herrb <matthieu@herrb.eu> +Date: Tue Feb 28 14:19:21 2023 +0100 + + Fix xcb_connect() call with a custom xcb_auth_info_t + + If the function implementing xcb_connect is called directly with a + custom xcb_auth_info_t then checking that the screen in $DISPLAY + is valid is skipped. + + Reported by chohag AT jtan DOT com + + Signed-off-by: Matthieu Herrb <matthieu@herrb.eu> + +commit fd04ab24a5e99d53874789439d3ffb0eb82574f7 +Author: Jan Beich <jbeich@FreeBSD.org> +Date: Fri Feb 10 14:16:20 2023 +0000 + + configure.ac: drop `pthread-stubs` dependency on DragonFly and FreeBSD + + All `pthread_*` symbols used by libxcb have stubs in libc. So, stop + linking against libpthread. + +commit 4d1a578dd5348909ade2a853d806272326d228d7 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Thu Feb 9 14:56:38 2023 -0800 + + Raise minimum required version of Python from 2.6 to 3.0 + + Trying to build with Python 2.7.14 fails with: + File "./c_client.py", line 2270 + key = (*self.name[:-1], field.enum) + ^ + SyntaxError: invalid syntax + + Fixes: 33f3dbe ("Fix handling of documented enum parameters") + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit e2a3e80eb837eaaa834a01a2741d4c249c984442 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Mon Feb 6 15:48:49 2023 -0800 + + configure.ac: Remove obsolete AC_HEADER_STDC + + Nothing checks for the STDC_HEADERS flag this set, and all supported + systems have C89 compatible headers now. + + Clears autoconf warnings of: + configure.ac:93: warning: The macro `AC_HEADER_STDC' is obsolete. + configure.ac:93: You should run autoupdate. + ./lib/autoconf/headers.m4:704: AC_HEADER_STDC is expanded from... + configure.ac:93: the top level + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 3333d5bde8baaca8981e806ef86b74f4adb77ba7 +Author: Daniel G <giri@nwrk.biz> +Date: Mon Jan 9 16:21:35 2023 +0000 + + Fix indentation. + +commit 973b510e954f6989ed773f8b357ca50fbc99bced +Author: Daniel G <giri@nwrk.biz> +Date: Sat Jan 7 19:35:47 2023 +0000 + + Fix windows build. + +commit cb8c70f5a65b4bd68b449dcaa637c3c4753e2f81 +Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com> +Date: Sat Nov 26 14:55:07 2022 -0800 + + xcb_conn: Add a check for NULL to silence a UBSan runtime error + + xcb_conn.c:314:60: runtime error: applying zero offset to null pointer + + Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com> + +commit 33f3dbe3699a92e8ca18f470adac456e0b935e75 +Author: Demi Marie Obenour <demiobenour@gmail.com> +Date: Sun Oct 16 01:50:53 2022 -0400 + + Fix handling of documented enum parameters + + Previously this would crash the code generator. + + Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> + +commit c9513aac2d78808f63b83d71072c2c483b20162d +Author: Demi Marie Obenour <demi@invisiblethingslab.com> +Date: Sat Aug 28 12:25:05 2021 -0400 + + Fix a compiler warning + + The warning is harmless but annoying. + + Signed-off-by: Demi Marie Obenour <demiobenour@gmail.com> + +commit 06e1ef43bbb8c84fc243fa6a53c81147a3a24273 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Tue Oct 4 11:30:09 2022 -0700 + + configure.ac: drop dependency `pthread-stubs` on Solaris + + On Solaris 10 and later, the pthread functions are directly in libc, + and libpthread only has metadata to redirect calls from it to the + libc functions. + + On Solaris 9 and older (no longer supported), libc contained its own + thread stubs that libpthread then overrode. + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit d53ad60d774176c5b057e2ed4d03a4658ee13690 +Author: PaperChalice <lgamma@163.com> +Date: Sat Aug 13 13:11:10 2022 +0800 + + configure.ac: drop dependency `pthread-stubs` on macOS + + `libpthread.dylib` on macOS is an alias of `libSystem.B.dylib`, + every program should link against `libSystem.B.dylib`. + +commit e2ee5aabe9f731b7231b0d4a5a21367d1aced6ed +Author: Uli Schlachter <psychon@znc.in> +Date: Wed Sep 14 14:53:35 2022 +0200 + + Improve tutorial example + + This tutorial example only handles XCB_EXPOSURE and XCB_KEY_RELEASE + events and ignores everything else. Thus, there is no point in asking + for more kinds of events. + + A while ago, I ported this tutorial to x11rb [1]. Recently, I received a + pull request [2] removing these unnecessary event masks. This commit is + thus only partially by me and the 'issue' was originally found by the + author of [2]. + + [1]: https://github.com/psychon/x11rb/blob/master/x11rb/examples/tutorial.rs + [2]: https://github.com/psychon/x11rb/pull/754 + + Signed-off-by: Uli Schlachter <psychon@znc.in> + +commit 9dcb08170898d3bd5ddb3bc26c514a6bfccf3fae +Author: Mihail Konev <k.mvc@ya.ru> +Date: Thu Jan 26 13:52:49 2017 +1000 + + autogen: add default patch prefix + + Signed-off-by: Mihail Konev <k.mvc@ya.ru> + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 7d798d3ccbe537f2f102665447ec3e15a8cdb1a1 +Author: Emil Velikov <emil.l.velikov@gmail.com> +Date: Mon Mar 9 12:00:52 2015 +0000 + + autogen.sh: use quoted string variables + + Place quotes around the $srcdir, $ORIGDIR and $0 variables to prevent + fall-outs, when they contain space. + + Signed-off-by: Emil Velikov <emil.l.velikov@gmail.com> + Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 7071b4a13c1e4df13b138748feebadc17fe2522b +Author: Peter Hutterer <peter.hutterer@who-t.net> +Date: Tue Jan 24 10:32:07 2017 +1000 + + autogen.sh: use exec instead of waiting for configure to finish + + Syncs the invocation of configure with the one from the server. + + Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> + Reviewed-by: Emil Velikov <emil.velikov@collabora.com> + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit ee60239b7308f98a7a32e2a567681e00c6b652f5 +Author: Alan Coopersmith <alan.coopersmith@oracle.com> +Date: Mon Jul 18 17:55:43 2022 -0700 + + gitlab CI: add a basic build test + + Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com> + +commit 3123dfe723648c5abeab429e7cb4bd194ceeb8f6 +Author: Mike Sharov <msharov@users.sourceforge.net> +Date: Wed Jun 22 10:56:37 2022 -0400 + + Require xcb-proto >= 1.15.1, which has Dbe + + Signed-off-by: Mike Sharov <msharov@users.sourceforge.net> + +commit 816407655f75cf8ae505432cb743c316e009679d +Author: Mike Sharov <msharov@users.sourceforge.net> +Date: Thu Jun 2 13:27:48 2022 -0400 + + Build DOUBLE-BUFFER extension. + + Signed-off-by: Mike Sharov <msharov@users.sourceforge.net> + commit c2c4a2cd1947e559718acdba19ef6e7db731dbeb Author: Matt Turner <mattst88@gmail.com> Date: Tue May 3 15:09:54 2022 -0700 diff --git a/dist/libxcb/Makefile.am b/dist/libxcb/Makefile.am index fbf6e048b..499c652fe 100644 --- a/dist/libxcb/Makefile.am +++ b/dist/libxcb/Makefile.am @@ -12,6 +12,9 @@ endif if BUILD_DAMAGE pkgconfig_DATA += xcb-damage.pc endif +if BUILD_DBE +pkgconfig_DATA += xcb-dbe.pc +endif if BUILD_DPMS pkgconfig_DATA += xcb-dpms.pc endif diff --git a/dist/libxcb/autogen.sh b/dist/libxcb/autogen.sh index fc34bd55c..cb039471f 100644 --- a/dist/libxcb/autogen.sh +++ b/dist/libxcb/autogen.sh @@ -1,14 +1,17 @@ #! /bin/sh -srcdir=`dirname $0` +srcdir=`dirname "$0"` test -z "$srcdir" && srcdir=. ORIGDIR=`pwd` -cd $srcdir +cd "$srcdir" autoreconf -v --install || exit 1 -cd $ORIGDIR || exit $? +cd "$ORIGDIR" || exit $? + +git config --local --get format.subjectPrefix >/dev/null 2>&1 || + git config --local format.subjectPrefix "PATCH libxcb" if test -z "$NOCONFIGURE"; then - $srcdir/configure "$@" + exec "$srcdir"/configure "$@" fi diff --git a/dist/libxcb/configure.ac b/dist/libxcb/configure.ac index 4198a508c..4e6f028f4 100644 --- a/dist/libxcb/configure.ac +++ b/dist/libxcb/configure.ac @@ -2,8 +2,8 @@ dnl Process this file with autoconf to produce a configure script. # Initialize Autoconf AC_PREREQ([2.60]) -AC_INIT([libxcb],[1.15], - [https://gitlab.freedesktop.org/xorg/lib/libxcb/issues], +AC_INIT([libxcb],[1.17.0], + [https://gitlab.freedesktop.org/xorg/lib/libxcb/-/issues], [libxcb]) AC_CONFIG_AUX_DIR([build-aux]) AC_CONFIG_MACRO_DIR([m4]) @@ -12,12 +12,13 @@ AC_CONFIG_HEADERS([src/config.h]) # Initialize Automake AM_INIT_AUTOMAKE([foreign dist-xz]) -AM_PATH_PYTHON([2.6]) +AM_PATH_PYTHON([3.0]) # Set common system defines for POSIX extensions, such as _GNU_SOURCE # Must be called before any macros that run the compiler (like AC_PROG_LIBTOOL) # to avoid autoconf errors. AC_USE_SYSTEM_EXTENSIONS +AC_SYS_LARGEFILE # Initialize libtool LT_PREREQ([2.2]) @@ -50,10 +51,10 @@ fi AC_SUBST(HTML_CHECK_RESULT) # Checks for pkg-config packages -PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.14) +PKG_CHECK_MODULES(XCBPROTO, xcb-proto >= 1.17.0) NEEDED="xau >= 0.99.2" case $host_os in -linux*) ;; +linux*|darwin*|solaris*|dragonfly*|freebsd*|netbsd*) ;; *) NEEDED="$NEEDED pthread-stubs" ;; esac PKG_CHECK_MODULES(NEEDED, $NEEDED) @@ -90,7 +91,6 @@ XCBPROTO_XCBPYTHONDIR=`$PKG_CONFIG --variable=pythondir xcb-proto` AC_MSG_RESULT($XCBPROTO_XCBPYTHONDIR) AC_SUBST(XCBPROTO_XCBPYTHONDIR) -AC_HEADER_STDC AC_SEARCH_LIBS(getaddrinfo, socket) AC_SEARCH_LIBS(connect, socket) @@ -221,6 +221,7 @@ esac XCB_EXTENSION(Composite, yes) XCB_EXTENSION(Damage, yes) +XCB_EXTENSION(Dbe, yes) XCB_EXTENSION(DPMS, yes) XCB_EXTENSION(DRI2, yes) XCB_EXTENSION(DRI3, $have_sendmsg) @@ -247,16 +248,6 @@ XCB_EXTENSION(XTest, yes) XCB_EXTENSION(Xv, yes) XCB_EXTENSION(XvMC, yes) -AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto]) -if test "x$LAUNCHD" = xauto; then - unset LAUNCHD - AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no], [$PATH$PATH_SEPARATOR/sbin]) -fi - -if test "x$LAUNCHD" = xyes ; then - AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available]) -fi - AC_ARG_WITH(serverside-support, AS_HELP_STRING([--with-serverside-support], [Build with support for server-side usage of xcb. This is still EXPERIMENTAL! ABI/API may change! (default: no)]), [XCB_SERVERSIDE_SUPPORT=$withval], [XCB_SERVERSIDE_SUPPORT=no]) AM_CONDITIONAL(XCB_SERVERSIDE_SUPPORT, test "x$XCB_SERVERSIDE_SUPPORT" = "xyes") @@ -273,6 +264,7 @@ AC_CONFIG_FILES([ xcb.pc xcb-composite.pc xcb-damage.pc +xcb-dbe.pc xcb-dpms.pc xcb-dri2.pc xcb-dri3.pc @@ -321,6 +313,7 @@ echo "" echo " X11 extensions" echo " Composite...........: ${BUILD_COMPOSITE}" echo " Damage..............: ${BUILD_DAMAGE}" +echo " Dbe.................: ${BUILD_DBE}" echo " Dpms................: ${BUILD_DPMS}" echo " Dri2................: ${BUILD_DRI2}" echo " Dri3................: ${BUILD_DRI3}" diff --git a/dist/libxcb/doc/tutorial/index.html b/dist/libxcb/doc/tutorial/index.html index ea0833745..1bc9f2e67 100644 --- a/dist/libxcb/doc/tutorial/index.html +++ b/dist/libxcb/doc/tutorial/index.html @@ -2297,9 +2297,7 @@ int main () values[0] = screen->white_pixel; values[1] = XCB_EVENT_MASK_KEY_RELEASE | - XCB_EVENT_MASK_BUTTON_PRESS | - XCB_EVENT_MASK_EXPOSURE | - XCB_EVENT_MASK_POINTER_MOTION; + XCB_EVENT_MASK_EXPOSURE; cookie_window = xcb_create_window_checked (c, screen->root_depth, window, screen->root, diff --git a/dist/libxcb/m4/libtool.m4 b/dist/libxcb/m4/libtool.m4 index a70aea9fe..12ba34c9b 100644 --- a/dist/libxcb/m4/libtool.m4 +++ b/dist/libxcb/m4/libtool.m4 @@ -1,6 +1,7 @@ # libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- # -# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Copyright (C) 1996-2001, 2003-2019, 2021-2022 Free Software +# Foundation, Inc. # Written by Gordon Matzigkeit, 1996 # # This file is free software; the Free Software Foundation gives @@ -31,7 +32,7 @@ m4_define([_LT_COPYING], [dnl # along with this program. If not, see <http://www.gnu.org/licenses/>. ]) -# serial 58 LT_INIT +# serial 59 LT_INIT # LT_PREREQ(VERSION) @@ -181,6 +182,7 @@ m4_require([_LT_FILEUTILS_DEFAULTS])dnl m4_require([_LT_CHECK_SHELL_FEATURES])dnl m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_DECL_FILECMD])dnl m4_require([_LT_CHECK_MAGIC_METHOD])dnl m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl m4_require([_LT_CMD_OLD_ARCHIVE])dnl @@ -219,8 +221,8 @@ esac ofile=libtool can_build_shared=yes -# All known linkers require a '.a' archive for static linking (except MSVC, -# which needs '.lib'). +# All known linkers require a '.a' archive for static linking (except MSVC and +# ICC, which need '.lib'). libext=a with_gnu_ld=$lt_cv_prog_gnu_ld @@ -778,7 +780,7 @@ _LT_EOF # if finds mixed CR/LF and LF-only lines. Since sed operates in # text mode, it properly converts lines to CR/LF. This bash problem # is reportedly fixed, but why not run on old versions too? - sed '$q' "$ltmain" >> "$cfgfile" \ + $SED '$q' "$ltmain" >> "$cfgfile" \ || (rm -f "$cfgfile"; exit 1) mv -f "$cfgfile" "$ofile" || @@ -1042,8 +1044,8 @@ int forced_loaded() { return 2;} _LT_EOF echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD - echo "$AR cru libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD - $AR cru libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$AR $AR_FLAGS libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR $AR_FLAGS libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD cat > conftest.c << _LT_EOF @@ -1067,17 +1069,12 @@ _LT_EOF _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; darwin1.*) _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - darwin*) # darwin 5.x on - # if running on 10.5 or later, the deployment target defaults - # to the OS version, if on x86, and 10.4, the deployment - # target defaults to 10.4. Don't you love it? - case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in - 10.0,*86*-darwin8*|10.0,*-darwin[[91]]*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; - 10.[[012]][[,.]]*) - _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; - 10.*|11.*) - _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + darwin*) + case $MACOSX_DEPLOYMENT_TARGET,$host in + 10.[[012]],*|,*powerpc*-darwin[[5-8]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + *) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; esac ;; esac @@ -1126,12 +1123,12 @@ m4_defun([_LT_DARWIN_LINKER_FEATURES], output_verbose_link_cmd=func_echo_all _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" - _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="$SED -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" m4_if([$1], [CXX], [ if test yes != "$lt_cv_apple_cc_single_mod"; then _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" - _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="$SED 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" fi ],[]) else @@ -1245,7 +1242,8 @@ _LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) # _LT_WITH_SYSROOT # ---------------- AC_DEFUN([_LT_WITH_SYSROOT], -[AC_MSG_CHECKING([for sysroot]) +[m4_require([_LT_DECL_SED])dnl +AC_MSG_CHECKING([for sysroot]) AC_ARG_WITH([sysroot], [AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], [Search for dependent libraries within DIR (or the compiler's sysroot @@ -1262,7 +1260,7 @@ case $with_sysroot in #( fi ;; #( /*) - lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + lt_sysroot=`echo "$with_sysroot" | $SED -e "$sed_quote_subst"` ;; #( no|'') ;; #( @@ -1292,7 +1290,7 @@ ia64-*-hpux*) # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *ELF-32*) HPUX_IA64_MODE=32 ;; @@ -1309,7 +1307,7 @@ ia64-*-hpux*) echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then if test yes = "$lt_cv_prog_gnu_ld"; then - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -melf32bsmip" ;; @@ -1321,7 +1319,7 @@ ia64-*-hpux*) ;; esac else - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) LD="${LD-ld} -32" ;; @@ -1343,7 +1341,7 @@ mips64*-*linux*) echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then emul=elf - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *32-bit*) emul="${emul}32" ;; @@ -1351,7 +1349,7 @@ mips64*-*linux*) emul="${emul}64" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *MSB*) emul="${emul}btsmip" ;; @@ -1359,7 +1357,7 @@ mips64*-*linux*) emul="${emul}ltsmip" ;; esac - case `/usr/bin/file conftest.$ac_objext` in + case `$FILECMD conftest.$ac_objext` in *N32*) emul="${emul}n32" ;; @@ -1379,14 +1377,14 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # not appear in the list. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *32-bit*) case $host in x86_64-*kfreebsd*-gnu) LD="${LD-ld} -m elf_i386_fbsd" ;; x86_64-*linux*) - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *x86-64*) LD="${LD-ld} -m elf32_x86_64" ;; @@ -1454,7 +1452,7 @@ s390*-*linux*|s390*-*tpf*|sparc*-*linux*) # options accordingly. echo 'int i;' > conftest.$ac_ext if AC_TRY_EVAL(ac_compile); then - case `/usr/bin/file conftest.o` in + case `$FILECMD conftest.o` in *64-bit*) case $lt_cv_prog_gnu_ld in yes*) @@ -1493,9 +1491,22 @@ need_locks=$enable_libtool_lock m4_defun([_LT_PROG_AR], [AC_CHECK_TOOLS(AR, [ar], false) : ${AR=ar} -: ${AR_FLAGS=cru} _LT_DECL([], [AR], [1], [The archiver]) -_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +# Use ARFLAGS variable as AR's operation code to sync the variable naming with +# Automake. If both AR_FLAGS and ARFLAGS are specified, AR_FLAGS should have +# higher priority because thats what people were doing historically (setting +# ARFLAGS for automake and AR_FLAGS for libtool). FIXME: Make the AR_FLAGS +# variable obsoleted/removed. + +test ${AR_FLAGS+y} || AR_FLAGS=${ARFLAGS-cr} +lt_ar_flags=$AR_FLAGS +_LT_DECL([], [lt_ar_flags], [0], [Flags to create an archive (by configure)]) + +# Make AR_FLAGS overridable by 'make ARFLAGS='. Don't try to run-time override +# by AR_FLAGS because that was never working and AR_FLAGS is about to die. +_LT_DECL([], [AR_FLAGS], [\@S|@{ARFLAGS-"\@S|@lt_ar_flags"}], + [Flags to create an archive]) AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], [lt_cv_ar_at_file=no @@ -1708,18 +1719,13 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl lt_cv_sys_max_cmd_len=8192; ;; - mint*) - # On MiNT this can take a long time and run out of memory. - lt_cv_sys_max_cmd_len=8192; - ;; - amigaos*) # On AmigaOS with pdksh, this test takes hours, literally. # So we just punt and use a minimum line length of 8192. lt_cv_sys_max_cmd_len=8192; ;; - bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + bitrig* | darwin* | dragonfly* | freebsd* | midnightbsd* | netbsd* | openbsd*) # This has been around since 386BSD, at least. Likely further. if test -x /sbin/sysctl; then lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` @@ -1762,7 +1768,7 @@ AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl sysv5* | sco5v6* | sysv4.2uw2*) kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` if test -n "$kargmax"; then - lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + lt_cv_sys_max_cmd_len=`echo $kargmax | $SED 's/.*[[ ]]//'` else lt_cv_sys_max_cmd_len=32768 fi @@ -2212,26 +2218,35 @@ m4_defun([_LT_CMD_STRIPLIB], striplib= old_striplib= AC_MSG_CHECKING([whether stripping libraries is possible]) -if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then - test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" - test -z "$striplib" && striplib="$STRIP --strip-unneeded" - AC_MSG_RESULT([yes]) +if test -z "$STRIP"; then + AC_MSG_RESULT([no]) else -# FIXME - insert some real tests, host_os isn't really good enough - case $host_os in - darwin*) - if test -n "$STRIP"; then + if $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + case $host_os in + darwin*) + # FIXME - insert some real tests, host_os isn't really good enough striplib="$STRIP -x" old_striplib="$STRIP -S" AC_MSG_RESULT([yes]) - else + ;; + freebsd*) + if $STRIP -V 2>&1 | $GREP "elftoolchain" >/dev/null; then + old_striplib="$STRIP --strip-debug" + striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) AC_MSG_RESULT([no]) - fi - ;; - *) - AC_MSG_RESULT([no]) - ;; - esac + ;; + esac + fi fi _LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) _LT_DECL([], [striplib], [1]) @@ -2554,7 +2569,7 @@ cygwin* | mingw* | pw32* | cegcc*) case $host_os in cygwin*) # Cygwin DLLs use 'cyg' prefix rather than 'lib' - soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + soname_spec='`echo $libname | $SED -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' m4_if([$1], [],[ sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) ;; @@ -2564,14 +2579,14 @@ m4_if([$1], [],[ ;; pw32*) # pw32 DLLs use 'pw' prefix rather than 'lib' - library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='`echo $libname | $SED -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' ;; esac dynamic_linker='Win32 ld.exe' ;; - *,cl*) - # Native MSVC + *,cl* | *,icl*) + # Native MSVC or ICC libname_spec='$name' soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' library_names_spec='$libname.dll.lib' @@ -2590,7 +2605,7 @@ m4_if([$1], [],[ done IFS=$lt_save_ifs # Convert to MSYS style. - sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` ;; cygwin*) # Convert to unix form, then to dos form, then back to unix form @@ -2627,7 +2642,7 @@ m4_if([$1], [],[ ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' dynamic_linker='Win32 ld.exe' ;; @@ -2660,7 +2675,7 @@ dgux*) shlibpath_var=LD_LIBRARY_PATH ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) # DragonFly does not have aout. When/if they implement a new # versioning mechanism, adjust this. if test -x /usr/bin/objformat; then @@ -3472,7 +3487,7 @@ beos*) bsdi[[45]]*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' - lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_cmd='$FILECMD -L' lt_cv_file_magic_test_file=/shlib/libc.so ;; @@ -3506,14 +3521,14 @@ darwin* | rhapsody*) lt_cv_deplibs_check_method=pass_all ;; -freebsd* | dragonfly*) +freebsd* | dragonfly* | midnightbsd*) if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then case $host_cpu in i*86 ) # Not sure whether the presence of OpenBSD here was a mistake. # Let's accept both of them until this is cleared up. lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` ;; esac @@ -3527,7 +3542,7 @@ haiku*) ;; hpux10.20* | hpux11*) - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD case $host_cpu in ia64*) lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' @@ -3574,7 +3589,7 @@ netbsd*) newos6*) lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' - lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_cmd=$FILECMD lt_cv_file_magic_test_file=/usr/lib/libnls.so ;; @@ -3701,13 +3716,13 @@ else mingw*) lt_bad_file=conftest.nm/nofile ;; *) lt_bad_file=/dev/null ;; esac - case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + case `"$tmp_nm" -B $lt_bad_file 2>&1 | $SED '1q'` in *$lt_bad_file* | *'Invalid file or object type'*) lt_cv_path_NM="$tmp_nm -B" break 2 ;; *) - case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + case `"$tmp_nm" -p /dev/null 2>&1 | $SED '1q'` in */dev/null*) lt_cv_path_NM="$tmp_nm -p" break 2 @@ -3733,7 +3748,7 @@ else # Let the user override the test. else AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) - case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | $SED '1q'` in *COFF*) DUMPBIN="$DUMPBIN -symbols -headers" ;; @@ -3973,7 +3988,7 @@ esac if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Gets list of data symbols to import. - lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + lt_cv_sys_global_symbol_to_import="$SED -n -e 's/^I .* \(.*\)$/\1/p'" # Adjust the below global symbol transforms to fixup imported variables. lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" @@ -3991,20 +4006,20 @@ fi # Transform an extracted symbol line into a proper C declaration. # Some systems (esp. on ia64) link data and code symbols differently, # so use this general approach. -lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +lt_cv_sys_global_symbol_to_cdecl="$SED -n"\ $lt_cdecl_hook\ " -e 's/^T .* \(.*\)$/extern int \1();/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" # Transform an extracted symbol line into symbol name and symbol address -lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address="$SED -n"\ $lt_c_name_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" # Transform an extracted symbol line into symbol name with lib prefix and # symbol address. -lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="$SED -n"\ $lt_c_name_lib_hook\ " -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ " -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ @@ -4028,7 +4043,7 @@ for ac_symprfx in "" "_"; do if test "$lt_cv_nm_interface" = "MS dumpbin"; then # Fake it for dumpbin and say T for any non-static function, # D for any global variable and I for any imported variable. - # Also find C++ and __fastcall symbols from MSVC++, + # Also find C++ and __fastcall symbols from MSVC++ or ICC, # which start with @ or ?. lt_cv_sys_global_symbol_pipe="$AWK ['"\ " {last_section=section; section=\$ 3};"\ @@ -4046,9 +4061,9 @@ for ac_symprfx in "" "_"; do " s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ " ' prfx=^$ac_symprfx]" else - lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + lt_cv_sys_global_symbol_pipe="$SED -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" fi - lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | $SED '/ __gnu_lto/d'" # Check to see that the pipe works correctly. pipe_works=no @@ -4335,7 +4350,7 @@ m4_if([$1], [CXX], [ ;; esac ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD uses GNU C++ ;; hpux9* | hpux10* | hpux11*) @@ -4418,7 +4433,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' @@ -4754,7 +4769,7 @@ m4_if([$1], [CXX], [ _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) # Sun Fortran 8.3 passes all unrecognized flags to the linker _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' @@ -4937,7 +4952,7 @@ m4_if([$1], [CXX], [ if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi ;; pw32*) @@ -4945,7 +4960,7 @@ m4_if([$1], [CXX], [ ;; cygwin* | mingw* | cegcc*) case $cc_basename in - cl*) + cl* | icl*) _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' ;; *) @@ -5002,15 +5017,15 @@ dnl Note also adjust exclude_expsyms for C++ above. case $host_os in cygwin* | mingw* | pw32* | cegcc*) - # FIXME: the MSVC++ port hasn't been tested in a loooong time + # FIXME: the MSVC++ and ICC port hasn't been tested in a loooong time # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. if test yes != "$GCC"; then with_gnu_ld=no fi ;; interix*) - # we just hope/assume this is gcc and not c89 (= MSVC++) + # we just hope/assume this is gcc and not c89 (= MSVC++ or ICC) with_gnu_ld=yes ;; openbsd* | bitrig*) @@ -5062,7 +5077,7 @@ dnl Note also adjust exclude_expsyms for C++ above. _LT_TAGVAR(whole_archive_flag_spec, $1)= fi supports_anon_versioning=no - case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + case `$LD -v | $SED -e 's/([[^)]]\+)\s\+//' 2>&1` in *GNU\ gold*) supports_anon_versioning=yes ;; *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... @@ -5174,6 +5189,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; interix[[3-9]]*) @@ -5188,7 +5204,7 @@ _LT_EOF # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) @@ -5231,7 +5247,7 @@ _LT_EOF _LT_TAGVAR(compiler_needs_object, $1)=yes ;; esac - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C 5.9 _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' _LT_TAGVAR(compiler_needs_object, $1)=yes @@ -5243,7 +5259,7 @@ _LT_EOF if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi @@ -5259,7 +5275,7 @@ _LT_EOF _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' fi @@ -5391,7 +5407,7 @@ _LT_EOF if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' else - _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "L") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' fi aix_use_runtimelinking=no @@ -5574,12 +5590,12 @@ _LT_EOF cygwin* | mingw* | pw32* | cegcc*) # When not using gcc, we currently assume that we are using - # Microsoft Visual C++. + # Microsoft Visual C++ or Intel C++ Compiler. # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. case $cc_basename in - cl*) - # Native MSVC + cl* | icl*) + # Native MSVC or ICC _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported _LT_TAGVAR(always_export_symbols, $1)=yes @@ -5620,7 +5636,7 @@ _LT_EOF fi' ;; *) - # Assume MSVC wrapper + # Assume MSVC and ICC wrapper _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' _LT_TAGVAR(allow_undefined_flag, $1)=unsupported # Tell ltmain to make .lib files, not .a files. @@ -5668,7 +5684,7 @@ _LT_EOF ;; # FreeBSD 3 and greater uses gcc -shared to do shared libraries. - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' _LT_TAGVAR(hardcode_direct, $1)=yes @@ -5879,6 +5895,7 @@ _LT_EOF emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; osf3*) @@ -6649,8 +6666,8 @@ if test yes != "$_lt_caught_CXX_error"; then cygwin* | mingw* | pw32* | cegcc*) case $GXX,$cc_basename in - ,cl* | no,cl*) - # Native MSVC + ,cl* | no,cl* | ,icl* | no,icl*) + # Native MSVC or ICC # hardcode_libdir_flag_spec is actually meaningless, as there is # no search path for DLLs. _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' @@ -6748,6 +6765,7 @@ if test yes != "$_lt_caught_CXX_error"; then emximp -o $lib $output_objdir/$libname.def' _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' ;; dgux*) @@ -6778,7 +6796,7 @@ if test yes != "$_lt_caught_CXX_error"; then _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; - freebsd* | dragonfly*) + freebsd* | dragonfly* | midnightbsd*) # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF # conventions _LT_TAGVAR(ld_shlibs, $1)=yes @@ -6915,7 +6933,7 @@ if test yes != "$_lt_caught_CXX_error"; then # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link # time. Moving up from 0x10000000 also allows more sbrk(2) space. _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' - _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$SED "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' ;; irix5* | irix6*) case $cc_basename in @@ -7055,13 +7073,13 @@ if test yes != "$_lt_caught_CXX_error"; then _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' if test yes = "$supports_anon_versioning"; then _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ - cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ echo "local: *; };" >> $output_objdir/$libname.ver~ $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' fi ;; *) - case `$CC -V 2>&1 | sed 5q` in + case `$CC -V 2>&1 | $SED 5q` in *Sun\ C*) # Sun C++ 5.9 _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' @@ -8207,6 +8225,14 @@ _LT_DECL([], [DLLTOOL], [1], [DLL creation program]) AC_SUBST([DLLTOOL]) ]) +# _LT_DECL_FILECMD +# ---------------- +# Check for a file(cmd) program that can be used to detect file type and magic +m4_defun([_LT_DECL_FILECMD], +[AC_CHECK_TOOL([FILECMD], [file], [:]) +_LT_DECL([], [FILECMD], [1], [A file(cmd) program that detects file types]) +])# _LD_DECL_FILECMD + # _LT_DECL_SED # ------------ # Check for a fully-functional sed program, that truncates diff --git a/dist/libxcb/m4/ltoptions.m4 b/dist/libxcb/m4/ltoptions.m4 index 94b082976..b0b5e9c21 100644 --- a/dist/libxcb/m4/ltoptions.m4 +++ b/dist/libxcb/m4/ltoptions.m4 @@ -1,7 +1,7 @@ # Helper functions for option handling. -*- Autoconf -*- # -# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software -# Foundation, Inc. +# Copyright (C) 2004-2005, 2007-2009, 2011-2019, 2021-2022 Free +# Software Foundation, Inc. # Written by Gary V. Vaughan, 2004 # # This file is free software; the Free Software Foundation gives diff --git a/dist/libxcb/m4/ltsugar.m4 b/dist/libxcb/m4/ltsugar.m4 index 48bc9344a..902508bd9 100644 --- a/dist/libxcb/m4/ltsugar.m4 +++ b/dist/libxcb/m4/ltsugar.m4 @@ -1,6 +1,6 @@ # ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Copyright (C) 2004-2005, 2007-2008, 2011-2019, 2021-2022 Free Software # Foundation, Inc. # Written by Gary V. Vaughan, 2004 # diff --git a/dist/libxcb/m4/ltversion.m4 b/dist/libxcb/m4/ltversion.m4 index fa04b52a3..b155d0ace 100644 --- a/dist/libxcb/m4/ltversion.m4 +++ b/dist/libxcb/m4/ltversion.m4 @@ -1,6 +1,7 @@ # ltversion.m4 -- version numbers -*- Autoconf -*- # -# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Copyright (C) 2004, 2011-2019, 2021-2022 Free Software Foundation, +# Inc. # Written by Scott James Remnant, 2004 # # This file is free software; the Free Software Foundation gives @@ -9,15 +10,15 @@ # @configure_input@ -# serial 4179 ltversion.m4 +# serial 4245 ltversion.m4 # This file is part of GNU Libtool -m4_define([LT_PACKAGE_VERSION], [2.4.6]) -m4_define([LT_PACKAGE_REVISION], [2.4.6]) +m4_define([LT_PACKAGE_VERSION], [2.4.7]) +m4_define([LT_PACKAGE_REVISION], [2.4.7]) AC_DEFUN([LTVERSION_VERSION], -[macro_version='2.4.6' -macro_revision='2.4.6' +[macro_version='2.4.7' +macro_revision='2.4.7' _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) _LT_DECL(, macro_revision, 0) ]) diff --git a/dist/libxcb/m4/lt~obsolete.m4 b/dist/libxcb/m4/lt~obsolete.m4 index c6b26f88f..0f7a8759d 100644 --- a/dist/libxcb/m4/lt~obsolete.m4 +++ b/dist/libxcb/m4/lt~obsolete.m4 @@ -1,7 +1,7 @@ # lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- # -# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software -# Foundation, Inc. +# Copyright (C) 2004-2005, 2007, 2009, 2011-2019, 2021-2022 Free +# Software Foundation, Inc. # Written by Scott James Remnant, 2004. # # This file is free software; the Free Software Foundation gives diff --git a/dist/libxcb/src/Makefile.am b/dist/libxcb/src/Makefile.am index c2984b3f0..9861a2dd0 100644 --- a/dist/libxcb/src/Makefile.am +++ b/dist/libxcb/src/Makefile.am @@ -40,6 +40,14 @@ libxcb_damage_la_LIBADD = $(XCB_LIBS) nodist_libxcb_damage_la_SOURCES = damage.c damage.h endif +EXTSOURCES += dbe.c +if BUILD_DBE +lib_LTLIBRARIES += libxcb-dbe.la +libxcb_dbe_la_LDFLAGS = -version-info 0:0:0 -no-undefined @lt_enable_auto_import@ +libxcb_dbe_la_LIBADD = $(XCB_LIBS) +nodist_libxcb_dbe_la_SOURCES = dbe.c dbe.h +endif + EXTSOURCES += dpms.c if BUILD_DPMS lib_LTLIBRARIES += libxcb-dpms.la diff --git a/dist/libxcb/src/c_client.py b/dist/libxcb/src/c_client.py index fd256f015..b7db543d2 100644 --- a/dist/libxcb/src/c_client.py +++ b/dist/libxcb/src/c_client.py @@ -331,7 +331,7 @@ def c_close(self): _h(' */') # Write header file - hfile = open('%s.h' % _ns.header, 'w') + hfile = open('%s.h' % _ns.header, 'w', encoding='UTF-8') for list in _hlines: for line in list: hfile.write(line) @@ -339,7 +339,7 @@ def c_close(self): hfile.close() # Write source file - cfile = open('%s.c' % _ns.header, 'w') + cfile = open('%s.c' % _ns.header, 'w', encoding='UTF-8') for list in _clines: for line in list: cfile.write(line) @@ -2266,13 +2266,13 @@ def _c_request_helper(self, name, void, regular, aux=False, reply_fds=False): elif base_func_name == 'xcb_create_window' and field.c_field_name == 'value_mask': field.enum = 'CW' if field.enum: - # XXX: why the 'xcb' prefix? - key = ('xcb', field.enum) + assert 2 <= len(self.name) <= 3 + key = (*self.name[:-1], field.enum) tname = _t(key) if namecount[tname] > 1: tname = _t(key + ('enum',)) - _h(' * @param %s A bitmask of #%s values.' % (field.c_field_name, tname)) + _h(' * @param %s A bitmask of #%s values.', field.c_field_name, tname) if self.doc and field.field_name in self.doc.fields: desc = self.doc.fields[field.field_name] @@ -2280,7 +2280,8 @@ def _c_request_helper(self, name, void, regular, aux=False, reply_fds=False): desc = desc.replace('`%s`' % name, '\\a %s' % (name)) desc = desc.split("\n") desc = [line if line != '' else '\\n' for line in desc] - _h(' * @param %s %s' % (field.c_field_name, "\n * ".join(desc))) + _h(' * @param %s %s', field.c_field_name, "\n * ".join(desc)) + # If there is no documentation yet, we simply don't generate an # @param tag. Doxygen will then warn about missing documentation. @@ -2339,7 +2340,7 @@ def _c_request_helper(self, name, void, regular, aux=False, reply_fds=False): for field in param_fields: if not field.type.fixed_size() and field.wire: count = count + 2 - if field.type.c_need_serialize: + if field.type.c_need_serialize or field.type.c_need_sizeof: # _serialize() keeps track of padding automatically count -= 1 dimension = count + 2 diff --git a/dist/libxcb/src/xcb_auth.c b/dist/libxcb/src/xcb_auth.c index 8ebe9a437..8c6e9b9e9 100644 --- a/dist/libxcb/src/xcb_auth.c +++ b/dist/libxcb/src/xcb_auth.c @@ -73,7 +73,7 @@ enum auth_protos { #define AUTH_PROTO_XDM_AUTHORIZATION "XDM-AUTHORIZATION-1" #define AUTH_PROTO_MIT_MAGIC_COOKIE "MIT-MAGIC-COOKIE-1" -static char *authnames[N_AUTH_PROTOS] = { +static const char *authnames[N_AUTH_PROTOS] = { #ifdef HASXDMAUTH AUTH_PROTO_XDM_AUTHORIZATION, #endif @@ -165,7 +165,7 @@ static Xauth *get_authptr(struct sockaddr *sockname, int display) return XauGetBestAuthByAddr (family, (unsigned short) addrlen, addr, (unsigned short) dispbuflen, dispbuf, - N_AUTH_PROTOS, authnames, authnameslen); + N_AUTH_PROTOS, (char **)authnames, authnameslen); } #ifdef HASXDMAUTH diff --git a/dist/libxcb/src/xcb_conn.c b/dist/libxcb/src/xcb_conn.c index 3084c18fd..8f91f4312 100644 --- a/dist/libxcb/src/xcb_conn.c +++ b/dist/libxcb/src/xcb_conn.c @@ -310,9 +310,11 @@ static int write_vec(xcb_connection_t *c, struct iovec **vector, int *count) int cur = (*vector)->iov_len; if(cur > n) cur = n; - (*vector)->iov_len -= cur; - (*vector)->iov_base = (char *) (*vector)->iov_base + cur; - n -= cur; + if(cur) { + (*vector)->iov_len -= cur; + (*vector)->iov_base = (char *) (*vector)->iov_base + cur; + n -= cur; + } if((*vector)->iov_len) break; } diff --git a/dist/libxcb/src/xcb_util.c b/dist/libxcb/src/xcb_util.c index 0296ce0dd..5124d144b 100644 --- a/dist/libxcb/src/xcb_util.c +++ b/dist/libxcb/src/xcb_util.c @@ -60,16 +60,27 @@ # include <sys/stat.h> #endif -#ifdef HAVE_LAUNCHD #include <sys/stat.h> + +#ifndef __has_builtin +# define __has_builtin(x) 0 #endif int xcb_popcount(uint32_t mask) { +#if __has_builtin(__builtin_popcount) + return __builtin_popcount(mask); +#else + /* + * Count the number of bits set to 1 in a 32-bit word. + * Algorithm from MIT AI Lab Memo 239: "HAKMEM", ITEM 169. + * https://dspace.mit.edu/handle/1721.1/6086 + */ uint32_t y; y = (mask >> 1) & 033333333333; y = mask - y - ((y >> 1) & 033333333333); return ((y + (y >> 3)) & 030707070707) % 077; +#endif } int xcb_sumof(uint8_t *list, int len) @@ -82,7 +93,6 @@ int xcb_sumof(uint8_t *list, int len) return s; } -#ifdef HAVE_LAUNCHD /* Return true and parse if name matches <path to socket>[.<screen>] * Upon success: * host = <path to socket> @@ -95,19 +105,30 @@ static int _xcb_parse_display_path_to_socket(const char *name, char **host, char { struct stat sbuf; char path[PATH_MAX]; - int _screen = 0; + size_t len; + int _screen = 0, res; - strlcpy(path, name, sizeof(path)); - if (0 != stat(path, &sbuf)) { - char *dot = strrchr(path, '.'); - if (!dot) + len = strlen(name); + if (len >= sizeof(path)) + return 0; + memcpy(path, name, len + 1); + res = stat(path, &sbuf); + if (0 != res) { + unsigned long lscreen; + char *dot, *endptr; + if (res != -1 || (errno != ENOENT && errno != ENOTDIR)) + return 0; + dot = strrchr(path, '.'); + if (!dot || dot[1] < '1' || dot[1] > '9') return 0; *dot = '\0'; - + errno = 0; + lscreen = strtoul(dot + 1, &endptr, 10); + if (lscreen > INT_MAX || !endptr || *endptr || errno) + return 0; if (0 != stat(path, &sbuf)) return 0; - - _screen = atoi(dot + 1); + _screen = (int)lscreen; } if (host) { @@ -133,7 +154,6 @@ static int _xcb_parse_display_path_to_socket(const char *name, char **host, char return 1; } -#endif static int _xcb_parse_display(const char *name, char **host, char **protocol, int *displayp, int *screenp) @@ -146,11 +166,12 @@ static int _xcb_parse_display(const char *name, char **host, char **protocol, if(!name) return 0; -#ifdef HAVE_LAUNCHD /* First check for <path to socket>[.<screen>] */ - if (_xcb_parse_display_path_to_socket(name, host, protocol, displayp, screenp)) - return 1; -#endif + if (name[0] == '/') + return _xcb_parse_display_path_to_socket(name, host, protocol, displayp, screenp); + + if (strncmp(name, "unix:", 5) == 0) + return _xcb_parse_display_path_to_socket(name + 5, host, protocol, displayp, screenp); slash = strrchr(name, '/'); @@ -236,41 +257,46 @@ static int _xcb_open(const char *host, char *protocol, const int display) char *file = NULL; int actual_filelen; - /* If protocol or host is "unix", fall through to Unix socket code below */ - if ((!protocol || (strcmp("unix",protocol) != 0)) && - (*host != '\0') && (strcmp("unix",host) != 0)) - { - /* display specifies TCP */ - unsigned short port = X_TCP_PORT + display; - return _xcb_open_tcp(host, protocol, port); - } +#ifndef _WIN32 + if (protocol && strcmp("unix", protocol) == 0 && host && host[0] == '/') { + /* Full path to socket provided, ignore everything else */ + filelen = strlen(host) + 1; + if (filelen > INT_MAX) + return -1; + file = malloc(filelen); + if (file == NULL) + return -1; + memcpy(file, host, filelen); + actual_filelen = (int)(filelen - 1); + } else { +#endif + /* If protocol or host is "unix", fall through to Unix socket code below */ + if ((!protocol || (strcmp("unix",protocol) != 0)) && + (*host != '\0') && (strcmp("unix",host) != 0)) + { + /* display specifies TCP */ + unsigned short port = X_TCP_PORT + display; + return _xcb_open_tcp(host, protocol, port); + } #ifndef _WIN32 #if defined(HAVE_TSOL_LABEL_H) && defined(HAVE_IS_SYSTEM_LABELED) - /* Check special path for Unix sockets under Solaris Trusted Extensions */ - if (is_system_labeled()) - { - struct stat sbuf; - const char *tsol_base = "/var/tsol/doors/.X11-unix/X"; - char tsol_socket[PATH_MAX]; - - snprintf(tsol_socket, sizeof(tsol_socket), "%s%d", tsol_base, display); - - if (stat(tsol_socket, &sbuf) == 0) - base = tsol_base; - } + /* Check special path for Unix sockets under Solaris Trusted Extensions */ + if (is_system_labeled()) + { + const char *tsol_base = "/var/tsol/doors/.X11-unix/X"; + char tsol_socket[PATH_MAX]; + struct stat sbuf; + + snprintf(tsol_socket, sizeof(tsol_socket), "%s%d", tsol_base, display); + + if (stat(tsol_socket, &sbuf) == 0) + base = tsol_base; + else if (errno != ENOENT) + return 0; + } #endif -#ifdef HAVE_LAUNCHD - struct stat sbuf; - if (0 == stat(host, &sbuf)) { - file = strdup(host); - if(file == NULL) - return -1; - filelen = actual_filelen = strlen(file); - } else -#endif - { filelen = strlen(base) + 1 + sizeof(display) * 3 + 1; file = malloc(filelen); if(file == NULL) @@ -278,24 +304,23 @@ static int _xcb_open(const char *host, char *protocol, const int display) /* display specifies Unix socket */ actual_filelen = snprintf(file, filelen, "%s%d", base, display); - } - if(actual_filelen < 0) - { - free(file); - return -1; - } - /* snprintf may truncate the file */ - filelen = MIN(actual_filelen, filelen - 1); + if(actual_filelen < 0) + { + free(file); + return -1; + } + /* snprintf may truncate the file */ + filelen = MIN(actual_filelen, filelen - 1); #ifdef HAVE_ABSTRACT_SOCKETS - fd = _xcb_open_abstract(protocol, file, filelen); - if (fd >= 0 || (errno != ENOENT && errno != ECONNREFUSED)) - { - free(file); - return fd; - } - + fd = _xcb_open_abstract(protocol, file, filelen); + if (fd >= 0 || (errno != ENOENT && errno != ECONNREFUSED)) + { + free(file); + return fd; + } #endif + } fd = _xcb_open_unix(protocol, file); free(file); @@ -389,7 +414,11 @@ static int _xcb_open_tcp(const char *host, char *protocol, const unsigned short fd = _xcb_socket(addr->ai_family, addr->ai_socktype, addr->ai_protocol); if (_xcb_do_connect(fd, addr->ai_addr, addr->ai_addrlen) >= 0) break; +#ifdef _WIN32 + closesocket(fd); +#else close(fd); +#endif fd = -1; } freeaddrinfo(results); @@ -528,10 +557,8 @@ xcb_connection_t *xcb_connect_to_display_with_auth_info(const char *displayname, if(auth) { c = xcb_connect_to_fd(fd, auth); - goto out; } - - if(_xcb_get_auth_info(fd, &ourauth, display)) + else if(_xcb_get_auth_info(fd, &ourauth, display)) { c = xcb_connect_to_fd(fd, &ourauth); free(ourauth.name); diff --git a/dist/libxcb/tests/check_public.c b/dist/libxcb/tests/check_public.c index aed40c8fb..e0b374b64 100644 --- a/dist/libxcb/tests/check_public.c +++ b/dist/libxcb/tests/check_public.c @@ -1,6 +1,10 @@ #include <check.h> +#include <stdio.h> #include <string.h> #include <stdlib.h> +#ifdef __unix__ +#include <unistd.h> +#endif #include "check_suites.h" #include "xcb.h" #include "xcbext.h" @@ -12,6 +16,10 @@ typedef enum test_type_t { } test_type_t; static const char *const test_string[] = { "", "via $DISPLAY " }; +/* putenv(3) takes a pointer to a writable string that it adds directly + to the environment, so it must be in persistent memory, not on the stack */ +static char display_env[] = "DISPLAY="; + static void parse_display_pass(const char *name, const char *host, const int display, const int screen) { int success; @@ -25,7 +33,7 @@ static void parse_display_pass(const char *name, const char *host, const int dis if(test_type == TEST_ARGUMENT) { argument = name; - putenv("DISPLAY="); + putenv(display_env); } else if(test_type == TEST_ENVIRONMENT) { @@ -50,7 +58,7 @@ static void parse_display_pass(const char *name, const char *host, const int dis ck_assert_msg(strcmp(host, got_host) == 0, "screenless parse %sproduced unexpected hostname '%s' for '%s': expected '%s'", test_string[test_type], got_host, name, host); ck_assert_msg(display == got_display, "screenless parse %sproduced unexpected display '%d' for '%s': expected '%d'", test_string[test_type], got_display, name, display); } - putenv("DISPLAY="); + putenv(display_env); } static void parse_display_fail(const char *name) @@ -66,7 +74,7 @@ static void parse_display_fail(const char *name) if(test_type == TEST_ARGUMENT) { argument = name; - putenv("DISPLAY="); + putenv(display_env); } else if(test_type == TEST_ENVIRONMENT) { @@ -92,11 +100,42 @@ static void parse_display_fail(const char *name) ck_assert_msg(got_host == (char *) -1, "host changed on parse failure %sfor '%s': got %p", test_string[test_type], name, got_host); ck_assert_msg(got_display == -42, "display changed on parse failure %sfor '%s': got %d", test_string[test_type], name, got_display); } - putenv("DISPLAY="); + putenv(display_env); } START_TEST(parse_display_unix) { +#ifdef __unix__ + char buf[sizeof "/tmp/xcb-test.XXXXXXX"]; + char buf2[sizeof(buf) + 7]; + int r, v; + memcpy(buf, "/tmp/xcb-test.XXXXXXX", sizeof buf); + v = mkstemp(buf); + ck_assert_msg(v >= 0, "cannot create temporary file"); + parse_display_pass(buf, buf, 0, 0); + r = snprintf(buf2, sizeof buf2, "unix:%s", buf); + if (r < 5 || r >= (int)sizeof buf2) { + ck_assert_msg(0, "snprintf() failed (return value %d)", r); + unlink(buf); + return; + } + parse_display_pass(buf2, buf, 0, 0); + r = snprintf(buf2, sizeof buf2, "unix:%s.1", buf); + if (r < 7 || r >= (int)sizeof buf2) { + ck_assert_msg(0, "snprintf() failed (return value %d)", r); + unlink(buf); + return; + } + parse_display_pass(buf2, buf, 0, 1); + r = snprintf(buf2, sizeof buf2, "%s.1", buf); + if (r < 2 || r >= (int)sizeof buf2) { + ck_assert_msg(0, "snprintf() failed (return value %d)", r); + unlink(buf); + return; + } + parse_display_pass(buf2, buf, 0, 1); + unlink(buf); +#endif parse_display_pass(":0", "", 0, 0); parse_display_pass(":1", "", 1, 0); parse_display_pass(":0.1", "", 0, 1); @@ -206,7 +245,7 @@ END_TEST Suite *public_suite(void) { Suite *s = suite_create("Public API"); - putenv("DISPLAY="); + putenv(display_env); suite_add_test(s, parse_display_unix, "xcb_parse_display unix"); suite_add_test(s, parse_display_ip, "xcb_parse_display ip"); suite_add_test(s, parse_display_ipv4, "xcb_parse_display ipv4"); diff --git a/dist/libxcb/xcb-dbe.pc.in b/dist/libxcb/xcb-dbe.pc.in new file mode 100644 index 000000000..05df0d5dd --- /dev/null +++ b/dist/libxcb/xcb-dbe.pc.in @@ -0,0 +1,11 @@ +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: XCB Dbe +Description: XCB Double Buffer Extension +Version: @PACKAGE_VERSION@ +Requires.private: xcb +Libs: -L${libdir} -lxcb-dbe +Cflags: -I${includedir} diff --git a/dist/libxcb/xcb-present.pc.in b/dist/libxcb/xcb-present.pc.in index 2e0cff8e7..2459d1d6d 100644 --- a/dist/libxcb/xcb-present.pc.in +++ b/dist/libxcb/xcb-present.pc.in @@ -6,6 +6,6 @@ includedir=@includedir@ Name: XCB Present Description: XCB Present Extension Version: @PACKAGE_VERSION@ -Requires.private: xcb xcb-randr xcb-xfixes xcb-sync +Requires.private: xcb xcb-randr xcb-xfixes xcb-sync xcb-dri3 Libs: -L${libdir} -lxcb-present Cflags: -I${includedir} |