[Pkg-xfce-commits] [Git][xfce-team/desktop/xfce4-session][debian/master] 4 commits: New upstream version 4.20.4

Yves-Alexis Perez (@corsac) gitlab at salsa.debian.org
Sat Mar 7 13:36:46 GMT 2026



Yves-Alexis Perez pushed to branch debian/master at xfce / desktop / xfce4-session


Commits:
a7962aa0 by Yves-Alexis Perez at 2026-03-06T19:12:15+01:00
New upstream version 4.20.4
- - - - -
08849145 by Yves-Alexis Perez at 2026-03-06T19:12:16+01:00
Update upstream source from tag 'upstream/4.20.4'

Update to upstream version '4.20.4'
with Debian dir c463c8de78428c7ac67e04ce6492702c5ef4ed0d
- - - - -
ef4a807b by Yves-Alexis Perez at 2026-03-07T14:34:23+01:00
finalize changelog

- - - - -
a6a61053 by Yves-Alexis Perez at 2026-03-07T14:34:30+01:00
upload xfce4-session 4.20.4-1 to unstable

- - - - -


22 changed files:

- ChangeLog
- NEWS
- configure
- configure.ac
- debian/changelog
- labwc/labwc-rc.xml
- ltmain.sh
- m4/libtool.m4
- m4/ltversion.m4
- po/xfce4-session.pot
- scripts/startxfce4.in
- settings/xfsm-client-dbus-client.c
- settings/xfsm-client-dbus-client.h
- settings/xfsm-manager-dbus-client.c
- settings/xfsm-manager-dbus-client.h
- xfce4-session/xfce-portals.conf
- xfce4-session/xfsm-client-dbus.c
- xfce4-session/xfsm-client-dbus.h
- xfce4-session/xfsm-logout-dialog.c
- xfce4-session/xfsm-manager-dbus.c
- xfce4-session/xfsm-manager-dbus.h
- xfce4-session/xfsm-manager.c


Changes:

=====================================
ChangeLog
=====================================
@@ -1,3 +1,72 @@
+commit 0abb763a80647624e884c83d4ee172d957da0188
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Mon Mar 2 11:13:55 2026 +0100
+
+    Updates for release
+
+commit 5d130ad324179bc96a181cb08b47ac134cd11a2d
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Sat Feb 7 05:53:19 2026 +0100
+
+    logout-dialog: Do not create multiple dialogs
+    
+    Fixes: #244
+    (cherry picked from commit 64bd4283c98fdc740987e9b9d08344a4d77c8228)
+
+commit 6681c199d3862833c14d52d6e0e12ec108636268
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Tue Dec 30 19:19:41 2025 +0100
+
+    startxfce4: Add support for OpenBSD to kbd layout detection on wayland
+    
+    Only the country code is parsed, as taking into account options and
+    variants would be too complex, if not impossible (underspecified).
+    
+    (cherry picked from commit 45c4a691bccb4cfce524a382b89339eac8d1fe60)
+
+commit 4b5aca3b7daa33745e37d75cab474725305d2f07
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Mon Jan 5 20:43:03 2026 +0100
+
+    portals: Add gnome-keyring as Secret provider
+    
+    Fixes: #242
+    (cherry picked from commit e8f88257fc2e6d6a77ed07f33f8aebda32d8f2b0)
+
+commit 49303a109107947f369fb4abc7d02f96df88f187
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Mon Oct 27 15:38:00 2025 +0100
+
+    startxfce4: Prioritize XKBLAYOUT over KEYMAP for kbd layout on wayland
+    
+    Fixes: #239
+    Amends: 9fb3995eb1db97571e6683d2c7c2975f86f49bbe
+    (cherry picked from commit b3dfae048024985974c3f63744bc30efeed547e3)
+
+commit cad43525202bc3d8d74e58a3772badf954191fee
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Sun Sep 14 13:29:14 2025 +0200
+
+    manager: Avoid use-after-free in idle function
+    
+    Fixes: #235
+    (cherry picked from commit 5eeac16f305ba3ef0b2058b52dd33022a0957f29)
+
+commit 9221d3963af097298ebb8b24d3024ff5e5b19df0
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Tue Aug 19 13:30:59 2025 +0200
+
+    labwc: Let amixer use system default mixer
+    
+    Fixes: #233
+    (cherry picked from commit 897ad9d691d7bafadb69891f92fb352516a326f5)
+
+commit ad7e5986037b1058e8a32fd3db6a381703a6a36b
+Author: Gaël Bonithon <gael at xfce.org>
+Date:   Thu Aug 14 09:40:23 2025 +0200
+
+    Back to development
+
 commit 6ddd21d98df53b291c0aff93cd0a78c27eeb576f
 Author: Gaël Bonithon <gael at xfce.org>
 Date:   Thu Aug 14 09:34:21 2025 +0200


=====================================
NEWS
=====================================
@@ -1,3 +1,12 @@
+4.20.4 (2026-03-02)
+======
+- logout-dialog: Do not create multiple dialogs
+- startxfce4: Add support for OpenBSD to kbd layout detection on wayland
+- portals: Add gnome-keyring as Secret provider
+- startxfce4: Prioritize XKBLAYOUT over KEYMAP for kbd layout on wayland
+- manager: Avoid use-after-free in idle function
+- labwc: Let amixer use system default mixer
+
 4.20.3 (2025-08-14)
 ======
 - wayland: startxfce4: Remove definition of SDL_VIDEODRIVER variable


=====================================
configure
=====================================
@@ -1,11 +1,11 @@
 #! /bin/sh
 # From configure.ac .
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.72 for xfce4-session 4.20.3.
+# Generated by GNU Autoconf 2.72 for xfce4-session 4.20.4.
 #
 # Report bugs to <https://gitlab.xfce.org/xfce/xfce4-session>.
 #
-# Copyright (c) 2003-2025
+# Copyright (c) 2003-2026
 #         The Xfce development team. All rights reserved.
 #
 # Written for Xfce by Benedikt Meurer <benny at xfce.org>.
@@ -620,8 +620,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='xfce4-session'
 PACKAGE_TARNAME='xfce4-session'
-PACKAGE_VERSION='4.20.3'
-PACKAGE_STRING='xfce4-session 4.20.3'
+PACKAGE_VERSION='4.20.4'
+PACKAGE_STRING='xfce4-session 4.20.4'
 PACKAGE_BUGREPORT='https://gitlab.xfce.org/xfce/xfce4-session'
 PACKAGE_URL=''
 
@@ -1487,7 +1487,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-'configure' configures xfce4-session 4.20.3 to adapt to many kinds of systems.
+'configure' configures xfce4-session 4.20.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1558,7 +1558,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of xfce4-session 4.20.3:";;
+     short | recursive ) echo "Configuration of xfce4-session 4.20.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1723,14 +1723,14 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-xfce4-session configure 4.20.3
+xfce4-session configure 4.20.4
 generated by GNU Autoconf 2.72
 
 Copyright (C) 2023 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
 gives unlimited permission to copy, distribute and modify it.
 
-Copyright (c) 2003-2025
+Copyright (c) 2003-2026
         The Xfce development team. All rights reserved.
 
 Written for Xfce by Benedikt Meurer <benny at xfce.org>.
@@ -2094,7 +2094,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by xfce4-session $as_me 4.20.3, which was
+It was created by xfce4-session $as_me 4.20.4, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -2905,7 +2905,7 @@ printf "%s\n" "no" >&6; }
   SET_MAKE="MAKE=${MAKE-make}"
 fi
 
-COPYRIGHT_YEAR=2025
+COPYRIGHT_YEAR=2026
 
 printf "%s\n" "#define COPYRIGHT_YEAR \"$COPYRIGHT_YEAR\"" >>confdefs.h
 
@@ -3582,7 +3582,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='xfce4-session'
- VERSION='4.20.3'
+ VERSION='4.20.4'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -6396,8 +6396,8 @@ esac
 
 
 
-macro_version='2.5.4.23-5b58'
-macro_revision='2.5.4.23'
+macro_version='2.6.0'
+macro_revision='2.6.0'
 
 
 
@@ -7493,6 +7493,77 @@ printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; }
 
 
 
+case $host in #(
+  *-*-mingw* | *-*-windows* | *-*-cygwin*) :
+    case $build in #(
+  *-*-mingw* | *-*-windows* | *-*-cygwin*) :
+    { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether cygpath is installed" >&5
+printf %s "checking whether cygpath is installed... " >&6; }
+      if test ${lt_cv_cygpath_installed+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e) lt_cv_cygpath_installed=ignoring
+          cygpath --help &> /dev/null
+          _lt_result=$?
+          if test 0 = "$_lt_result"
+then :
+  lt_cv_cygpath_installed=yes
+else case e in #(
+  e) lt_cv_cygpath_installed=no ;;
+esac
+fi
+         ;;
+esac
+fi
+
+      { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cygpath_installed" >&5
+printf "%s\n" "$lt_cv_cygpath_installed" >&6; }
+
+
+
+
+      if test "xyes" != "x$lt_cv_cygpath_installed"
+then :
+
+          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use cmd with one slash or two slashes" >&5
+printf %s "checking whether to use cmd with one slash or two slashes... " >&6; }
+          if test ${lt_cv_cmd_slashes+y}
+then :
+  printf %s "(cached) " >&6
+else case e in #(
+  e)
+              _lt_result=`cmd /c echo one-slash works. Not checked //c echo two-slashes 2>/dev/null`
+              if test 0 != $?
+then :
+  as_fn_error $? "Do not know how to convert paths" "$LINENO" 5
+fi
+              case $_lt_result in #(
+  one-slash*) :
+    lt_cv_cmd_slashes="one" ;; #(
+  two-slashes*) :
+    lt_cv_cmd_slashes="two" ;; #(
+  *) :
+    as_fn_error $? "Do not know how to convert paths" "$LINENO" 5
+               ;;
+esac
+             ;;
+esac
+fi
+
+          { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cmd_slashes" >&5
+printf "%s\n" "$lt_cv_cmd_slashes" >&6; }
+
+fi
+     ;; #(
+  *) :
+     ;;
+esac
+
+ ;; #(
+  *) :
+     ;;
+esac
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5
 printf %s "checking for $LD option to reload object files... " >&6; }
 if test ${lt_cv_ld_reload_flag+y}
@@ -7814,12 +7885,12 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+*-mlibc)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-*-mlibc)
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -8654,13 +8725,13 @@ 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 .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/\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'"
+  lt_cdecl_hook=" -e 's/^I .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/  {\"\1\", (void *) 0},/p'"
   lt_c_name_lib_hook="\
-  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
-  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+  -e 's/^I .* \(lib[a-zA-Z_][a-zA-Z0-9_]*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/  {\"lib\1\", (void *) 0},/p'"
 else
   # Disable hooks by default.
   lt_cv_sys_global_symbol_to_import=
@@ -8674,22 +8745,22 @@ fi
 # so use this general approach.
 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'"
+" -e 's/^T .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/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_c_name_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+" -e 's/^$symcode$symcode* .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/  {\"\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_c_name_lib_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
+" -e 's/^$symcode$symcode* .* \(lib[a-zA-Z_][a-zA-Z0-9_]*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \([a-zA-Z_][a-zA-Z0-9_]*\)$/  {\"lib\1\", (void *) \&\1},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -8710,8 +8781,10 @@ for ac_symprfx in "" "_"; do
     # 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++ or ICC,
-    # which start with @ or ?.
+    # which start with @ or ?.  And Cygwin gawk-4.1.4-3 and newer
+    # treats input as binary, have to drop carriage return first.
     lt_cv_sys_global_symbol_pipe="$AWK '"\
+"     {sub(/\\r\$/,\"\")};"\
 "     {last_section=section; section=\$ 3};"\
 "     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
@@ -10888,9 +10961,9 @@ else case e in #(
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.expsym
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+     if test ! -s conftest.er2 || diff conftest.expsym conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_rtti_exceptions=yes
      fi
    fi
@@ -11037,7 +11110,7 @@ lt_prog_compiler_static=
 	# AIX 5 now supports IA64 processor
 	lt_prog_compiler_static='-Bstatic'
       else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.expsym'
       fi
       ;;
 
@@ -11088,7 +11161,13 @@ lt_prog_compiler_static=
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+    *-mlibc)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-fPIC'
+      lt_prog_compiler_static='-static'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | freebsd*)
       case $cc_basename in
       # old Intel for x86_64, which still supported -KPIC.
       ecc*)
@@ -11104,7 +11183,7 @@ lt_prog_compiler_static=
         ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
+      icc* | ifort* | icx* | ifx*)
 	lt_prog_compiler_wl='-Wl,'
 	lt_prog_compiler_pic='-fPIC'
 	lt_prog_compiler_static='-static'
@@ -11184,12 +11263,6 @@ lt_prog_compiler_static=
       lt_prog_compiler_static='-Bstatic'
       ;;
 
-    *-mlibc)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-fPIC'
-      lt_prog_compiler_static='-static'
-      ;;
-
     *nto* | *qnx*)
       # QNX uses GNU C++, but need to define -shared option too, otherwise
       # it will coredump.
@@ -11315,9 +11388,9 @@ else case e in #(
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.expsym
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+     if test ! -s conftest.er2 || diff conftest.expsym conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works=yes
      fi
    fi
@@ -11370,9 +11443,9 @@ else case e in #(
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.expsym
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
+       if diff conftest.expsym conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works=yes
        fi
      else
@@ -11430,9 +11503,9 @@ else case e in #(
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.expsym
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+     if test ! -s out/conftest.er2 || diff out/conftest.expsym out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
      fi
    fi
@@ -11487,9 +11560,9 @@ else case e in #(
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.expsym
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+     if test ! -s out/conftest.er2 || diff out/conftest.expsym out/conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_c_o=yes
      fi
    fi
@@ -11771,6 +11844,11 @@ _LT_EOF
       archive_expsym_cmds='$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'
       ;;
 
+    *-mlibc)
+	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      ;;
+
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
       if test linux-dietlibc = "$host_os"; then
@@ -11796,7 +11874,7 @@ _LT_EOF
 	  tmp_addflag=' -i_dynamic' ;;
 	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
 	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
+	ifc* | ifort* | ifx*)		# Intel Fortran compiler
 	  tmp_addflag=' -nofor_main' ;;
 	lf95*)				# Lahey Fortran 8.1
 	  whole_archive_flag_spec=
@@ -11851,11 +11929,6 @@ _LT_EOF
       fi
       ;;
 
-    *-mlibc)
-	archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-      ;;
-
     netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
@@ -12254,8 +12327,8 @@ fi
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       case $cc_basename in
-      cl* | icl*)
-	# Native MSVC or ICC
+      cl* | icl* | icx* | icpx*)
+	# Native MSVC and Intel compilers
 	hardcode_libdir_flag_spec=' '
 	allow_undefined_flag=unsupported
 	always_export_symbols=yes
@@ -12265,14 +12338,20 @@ fi
 	# Tell ltmain to make .dll files, not .so files.
 	shrext_cmds=.dll
 	# FIXME: Setting linknames here is a bad hack.
+	# A check exists to verify if there are linker flags, which will use
+	# different commands when linking.
 	archive_cmds='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
 	archive_expsym_cmds='if   test DEF = "`$SED -n     -e '\''s/^[	 ]*//'\''     -e '\''/^\(;.*\)*$/d'\''     -e '\''s/^\(EXPORTS\|LIBRARY\)\([	 ].*\)*$/DEF/p'\''     -e q     $export_symbols`" ; then
             cp "$export_symbols" "$output_objdir/$soname.def";
-            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.expsym";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.expsym;
+          fi~
+          if test -z "$linker_flags"; then
+             $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.expsym" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
           else
-            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+             $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.expsym" -Wl,$linker_flags-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
           fi~
-          $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
           linknames='
 	# The linker will not automatically build a static lib if we build a DLL.
 	# _LT_TAGVAR(old_archive_from_new_cmds, )='true'
@@ -12304,7 +12383,7 @@ fi
 	# Tell ltmain to make .dll files, not .so files.
 	shrext_cmds=.dll
 	# FIXME: Setting linknames here is a bad hack.
-	archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	archive_cmds='$CC -Fe$lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
 	# The linker will automatically build a .lib file if we build a DLL.
 	old_archive_from_new_cmds='true'
 	# FIXME: Should let the user specify the lib program.
@@ -12454,9 +12533,9 @@ else case e in #(
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.expsym
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
+       if diff conftest.expsym conftest.er2 >/dev/null; then
          lt_cv_prog_compiler__b=yes
        fi
      else
@@ -12549,6 +12628,9 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
       link_all_deplibs=yes
       ;;
 
+    *-mlibc)
+      ;;
+
     linux*)
       case $cc_basename in
       tcc*)
@@ -12560,9 +12642,6 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
       esac
       ;;
 
-    *-mlibc)
-      ;;
-
     netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
@@ -12654,8 +12733,8 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
       else
 	allow_undefined_flag=' -expect_unresolved \*'
 	archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+	archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.expsym; done; printf "%s\\n" "-hidden">> $lib.expsym~
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.expsym $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.expsym'
 
 	# Both c and cxx compiler support -rpath directly
 	hardcode_libdir_flag_spec='-rpath $libdir'
@@ -12672,21 +12751,21 @@ printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; }
       if test yes = "$GCC"; then
 	wlarc='$wl'
 	archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
-	archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	archive_expsym_cmds='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.expsym $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.expsym'
       else
 	case `$CC -V 2>&1` in
 	*"Compilers 5.0"*)
 	  wlarc=''
 	  archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  archive_expsym_cmds='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~
+            $LD -G$allow_undefined_flag -M $lib.expsym -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.expsym'
 	  ;;
 	*)
 	  wlarc='$wl'
 	  archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  archive_expsym_cmds='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~
+            $CC -G$allow_undefined_flag -M $lib.expsym -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.expsym'
 	  ;;
 	esac
       fi
@@ -13357,8 +13436,8 @@ cygwin* | mingw* | windows* | pw32* | cegcc*)
     dynamic_linker='Win32 ld.exe'
     ;;
 
-  *,cl* | *,icl*)
-    # Native MSVC or ICC
+  *,cl* | *,icl* | *,icx*)
+    # Native MSVC and Intel compilers
     libname_spec='$name'
     soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext'
     library_names_spec='$libname.dll.lib'
@@ -13625,6 +13704,18 @@ irix5* | irix6* | nonstopux*)
   hardcode_into_libs=yes
   ;;
 
+*-mlibc)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  dynamic_linker='mlibc ld.so'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
 # No shared lib support for Linux oldld, aout, or coff.
 linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
@@ -13759,18 +13850,6 @@ netbsd*)
   stdlibflag=
   ;;
 
-*-mlibc)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  dynamic_linker='mlibc ld.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 newsos6)
   version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
@@ -14089,7 +14168,7 @@ lt_prog_compiler_static=
 	# AIX 5 now supports IA64 processor
 	lt_prog_compiler_static='-Bstatic'
       else
-	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp'
+	lt_prog_compiler_static='-bnso -bI:/lib/syscalls.expsym'
       fi
       ;;
 
@@ -14140,7 +14219,13 @@ lt_prog_compiler_static=
       lt_prog_compiler_static='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+    *-mlibc)
+      lt_prog_compiler_wl='-Wl,'
+      lt_prog_compiler_pic='-fPIC'
+      lt_prog_compiler_static='-static'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | freebsd*)
       case $cc_basename in
       # old Intel for x86_64, which still supported -KPIC.
       ecc*)
@@ -14156,7 +14241,7 @@ lt_prog_compiler_static=
         ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
+      icc* | ifort* | icx* | ifx*)
 	lt_prog_compiler_wl='-Wl,'
 	lt_prog_compiler_pic='-fPIC'
 	lt_prog_compiler_static='-static'
@@ -14236,12 +14321,6 @@ lt_prog_compiler_static=
       lt_prog_compiler_static='-Bstatic'
       ;;
 
-    *-mlibc)
-      lt_prog_compiler_wl='-Wl,'
-      lt_prog_compiler_pic='-fPIC'
-      lt_prog_compiler_static='-static'
-      ;;
-
     *nto* | *qnx*)
       # QNX uses GNU C++, but need to define -shared option too, otherwise
       # it will coredump.
@@ -14367,9 +14446,9 @@ else case e in #(
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.expsym
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+     if test ! -s conftest.er2 || diff conftest.expsym conftest.er2 >/dev/null; then
        lt_cv_prog_compiler_pic_works=yes
      fi
    fi
@@ -14416,9 +14495,9 @@ else case e in #(
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&5
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.expsym
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
+       if diff conftest.expsym conftest.er2 >/dev/null; then
          lt_cv_prog_compiler_static_works=yes
        fi
      else
@@ -15318,6 +15397,9 @@ CC=$lt_save_CC
 
 
 
+
+
+
 
 
         ac_config_commands="$ac_config_commands libtool"
@@ -24571,7 +24653,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by xfce4-session $as_me 4.20.3, which was
+This file was extended by xfce4-session $as_me 4.20.4, which was
 generated by GNU Autoconf 2.72.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -24639,7 +24721,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-xfce4-session config.status 4.20.3
+xfce4-session config.status 4.20.4
 configured by $0, generated by GNU Autoconf 2.72,
   with options \\"\$ac_cs_config\\"
 
@@ -24802,6 +24884,7 @@ lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`'
 lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`'
 lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`'
 lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`'
+lt_cv_cygpath_installed='`$ECHO "$lt_cv_cygpath_installed" | $SED "$delay_single_quote_subst"`'
 reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`'
 reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`'
 FILECMD='`$ECHO "$FILECMD" | $SED "$delay_single_quote_subst"`'
@@ -24943,6 +25026,7 @@ want_nocaseglob \
 DLLTOOL \
 sharedlib_from_linklib_cmd \
 AR \
+lt_ar_flags \
 archiver_list_spec \
 STRIP \
 RANLIB \
@@ -25919,6 +26003,9 @@ to_host_file_cmd=$lt_cv_to_host_file_cmd
 # convert \$build files to toolchain format.
 to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 
+# whether cygpath is installed.
+cygpath_installed=$lt_cv_cygpath_installed
+
 # A file(cmd) program that detects file types.
 FILECMD=$lt_FILECMD
 
@@ -25947,7 +26034,7 @@ sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd
 AR=$lt_AR
 
 # Flags to create an archive (by configure).
-lt_ar_flags=$lt_ar_flags
+lt_ar_flags=$lt_lt_ar_flags
 
 # Flags to create an archive.
 AR_FLAGS=\${ARFLAGS-"\$lt_ar_flags"}


=====================================
configure.ac
=====================================
@@ -6,8 +6,8 @@ dnl Written for Xfce by Benedikt Meurer <benny at xfce.org>.
 dnl
 
 dnl Version information
-XDT_VERSION_INIT([4.20.3])
-m4_define([copyright_year], [2025])
+XDT_VERSION_INIT([4.20.4])
+m4_define([copyright_year], [2026])
 
 dnl minimum required versions
 m4_define([glib_min_version], [2.72.0])


=====================================
debian/changelog
=====================================
@@ -1,3 +1,13 @@
+xfce4-session (4.20.4-1) unstable; urgency=medium
+
+  [ Pino Toscano ]
+  * d/control: limit libgtk-layer-shell-dev B-D as linux-any
+
+  [ Yves-Alexis Perez ]
+  * New upstream version 4.20.4
+
+ -- Yves-Alexis Perez <corsac at debian.org>  Sat, 07 Mar 2026 14:34:27 +0100
+
 xfce4-session (4.20.3-1) unstable; urgency=medium
 
   * New upstream version 4.20.3


=====================================
labwc/labwc-rc.xml
=====================================
@@ -37,13 +37,13 @@
        Suggested Xfce key bindings.
     -->
     <keybind key="XF86_AudioLowerVolume">
-      <action name="Execute" command="amixer -D pulse sset Master 5%-" />
+      <action name="Execute" command="amixer sset Master 5%-" />
     </keybind>
     <keybind key="XF86_AudioRaiseVolume">
-      <action name="Execute" command="amixer -D pulse sset Master 5%+" />
+      <action name="Execute" command="amixer sset Master 5%+" />
     </keybind>
     <keybind key="XF86_AudioMute">
-      <action name="Execute" command="amixer -D pulse sset Master toggle" />
+      <action name="Execute" command="amixer sset Master toggle" />
     </keybind>
     <keybind key="W-q">
       <action name="Close" />


=====================================
ltmain.sh
=====================================
@@ -2,7 +2,7 @@
 ## DO NOT EDIT - This file generated from ./build-aux/ltmain.in
 ##               by inline-source v2019-02-19.15
 
-# libtool (GNU libtool) 2.5.4.23-5b58
+# libtool (GNU libtool) 2.6.0
 # Provide generalized library-building support services.
 # Written by Gordon Matzigkeit <gord at gnu.ai.mit.edu>, 1996
 
@@ -31,8 +31,8 @@
 
 PROGRAM=libtool
 PACKAGE=libtool
-VERSION=2.5.4.23-5b58
-package_revision=2.5.4.23
+VERSION=2.6.0
+package_revision=2.6.0
 
 
 ## ------ ##
@@ -2215,7 +2215,7 @@ func_version ()
 # End:
 
 # Set a version string.
-scriptversion='(GNU libtool) 2.5.4.23-5b58'
+scriptversion='(GNU libtool) 2.6.0'
 
 # func_version
 # ------------
@@ -3179,13 +3179,41 @@ func_convert_core_msys_to_w32 ()
 {
   $debug_cmd
 
-  # awkward: cmd appends spaces to result
+  # Compatibility for original MSYS
+  if test "Xone" = "X$lt_cv_cmd_slashes"; then
+  func_convert_core_msys_to_w32_result=`( cmd /c echo "$1" ) 2>/dev/null |
+    $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
+  else # Assume 'lt_cv_cmd_slashes = "two"'
   func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null |
     $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
+  fi
+  if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_convert_core_msys_to_w32_result=
+  fi
 }
 #end: func_convert_core_msys_to_w32
 
 
+# func_convert_core_msys_to_w32_with_cygpath ARG
+# Convert file name or path ARG with cygpath from MSYS format to w32
+# format. Return result in func_convert_core_msys_to_w32_with_cygpath_result.
+func_convert_core_msys_to_w32_with_cygpath ()
+{
+  $debug_cmd
+
+  # Since MSYS2 is packaged with cygpath, call cygpath in $PATH; no need
+  # to use LT_CYGPATH in this case.
+  func_convert_core_msys_to_w32_result=`cygpath "$@" 2>/dev/null |
+	$SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"`
+  if test "$?" -ne 0; then
+      # on failure, ensure result is empty
+      func_convert_core_msys_to_w32_result=
+  fi
+}
+#end: func_convert_core_msys_to_w32_with_cygpath
+
+
 # func_convert_file_check ARG1 ARG2
 # Verify that ARG1 (a file name in $build format) was converted to $host
 # format in ARG2. Otherwise, emit an error message, but continue (resetting
@@ -3320,8 +3348,13 @@ func_convert_file_msys_to_w32 ()
 
   func_to_host_file_result=$1
   if test -n "$1"; then
-    func_convert_core_msys_to_w32 "$1"
-    func_to_host_file_result=$func_convert_core_msys_to_w32_result
+    if test "Xyes" = "X$cygpath_installed"; then
+      func_convert_core_msys_to_w32_with_cygpath -w "$1"
+      func_to_host_file_result=$func_convert_core_msys_to_w32_with_cygpath_result
+    else
+      func_convert_core_msys_to_w32 "$1"
+      func_to_host_file_result=$func_convert_core_msys_to_w32_result
+    fi
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
 }
@@ -3372,8 +3405,13 @@ func_convert_file_msys_to_cygwin ()
 
   func_to_host_file_result=$1
   if test -n "$1"; then
-    func_convert_core_msys_to_w32 "$1"
-    func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    if test "Xyes" = "X$cygpath_installed"; then
+      func_convert_core_msys_to_w32_with_cygpath -w "$1"
+      func_cygpath -u "$func_convert_core_msys_to_w32_with_cygpath_result"
+    else
+      func_convert_core_msys_to_w32 "$1"
+      func_cygpath -u "$func_convert_core_msys_to_w32_result"
+    fi
     func_to_host_file_result=$func_cygpath_result
   fi
   func_convert_file_check "$1" "$func_to_host_file_result"
@@ -3474,8 +3512,13 @@ func_convert_path_msys_to_w32 ()
     # and winepath ignores them completely.
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_to_host_path_result=$func_convert_core_msys_to_w32_result
+    if test "Xyes" = "X$cygpath_installed"; then
+      func_convert_core_msys_to_w32_with_cygpath -w -p "$func_to_host_path_tmp1"
+      func_to_host_path_result=$func_convert_core_msys_to_w32_with_cygpath_result
+    else
+      func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+      func_to_host_path_result=$func_convert_core_msys_to_w32_result
+    fi
     func_convert_path_check : ";" \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
     func_convert_path_front_back_pathsep ":*" "*:" ";" "$1"
@@ -3539,8 +3582,13 @@ func_convert_path_msys_to_cygwin ()
     # See func_convert_path_msys_to_w32:
     func_stripname : : "$1"
     func_to_host_path_tmp1=$func_stripname_result
-    func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
-    func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    if test "Xyes" = "X$cygpath_installed"; then
+      func_convert_core_msys_to_w32_with_cygpath -w -p "$func_to_host_path_tmp1"
+      func_cygpath -u -p "$func_convert_core_msys_to_w32_with_cygpath_result"
+    else
+      func_convert_core_msys_to_w32 "$func_to_host_path_tmp1"
+      func_cygpath -u -p "$func_convert_core_msys_to_w32_result"
+    fi
     func_to_host_path_result=$func_cygpath_result
     func_convert_path_check : : \
       "$func_to_host_path_tmp1" "$func_to_host_path_result"
@@ -4472,6 +4520,14 @@ func_mode_finish ()
       fi
       echo
 
+      echo "After a 'make install' for many GNU/Linux systems, 'ldconfig LIBDIR'"
+      echo "may need to be executed to help locate newly installed libraries,"
+      echo "but you should consult with a system administrator before updating"
+      echo "the shared library cache as this should be done with great care"
+      echo "and consideration. (See the 'Platform-specific configuration notes'"
+      echo "section of the documentation for more information.)"
+      echo
+
       echo "See any operating system documentation about shared libraries for"
       case $host in
 	solaris2.[6789]|solaris2.1[0-9])
@@ -5062,7 +5118,7 @@ extern \"C\" {
 
 	  # Prepare the list of exported symbols
 	  if test -z "$export_symbols"; then
-	    export_symbols=$output_objdir/$outputname.exp
+	    export_symbols=$output_objdir/$outputname.expsym
 	    $opt_dry_run || {
 	      $RM $export_symbols
 	      eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
@@ -5075,8 +5131,8 @@ extern \"C\" {
 	    }
 	  else
 	    $opt_dry_run || {
-	      eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
-	      eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+	      eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.expsym"'
+	      eval '$GREP -f "$output_objdir/$outputname.expsym" < "$nlist" > "$nlist"T'
 	      eval '$MV "$nlist"T "$nlist"'
 	      case $host in
 	        *cygwin* | *mingw* | *windows* | *cegcc* )
@@ -5996,6 +6052,7 @@ int setenv (const char *, const char *, int);
 # define getcwd  _getcwd
 # define putenv  _putenv
 # define S_IXUSR _S_IEXEC
+# define MSVC_ISDIR(m)(((m) & S_IFMT) == S_IFDIR)
 #elif defined __MINGW32__
 # define setmode _setmode
 # define stat    _stat
@@ -6391,8 +6448,13 @@ check_executable (const char *path)
   if ((!path) || (!*path))
     return 0;
 
+#ifdef _MSC_VER
+  if ((stat (path, &st) >= 0) && !MSVC_ISDIR (st.st_mode)
+      && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+#else
   if ((stat (path, &st) >= 0) && !S_ISDIR (st.st_mode)
       && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+#endif
     return 1;
   else
     return 0;
@@ -7297,8 +7359,13 @@ func_mode_link ()
 	  continue
 	  ;;
 	xlinker)
-	  func_append linker_flags " $qarg"
-	  func_append compiler_flags " $wl$qarg"
+	  func_append linker_flags "$qarg,"
+	  # Args in the var 'compiler_flags' causes warnings in MSVC
+	  func_cc_basename "$CC"
+	  case $func_cc_basename_result in
+	    cl|cl.exe) ;;
+	    *) func_append compiler_flags " $wl$qarg" ;;
+	  esac
 	  prev=
 	  func_append compile_command " $wl$qarg"
 	  func_append finalize_command " $wl$qarg"
@@ -7663,6 +7730,11 @@ func_mode_link ()
 	arg=$func_stripname_result
 	;;
 
+	-Wl,--as-needed|-Wl,--no-as-needed)
+	deplibs="$deplibs $arg"
+	continue
+	;;
+
       -Wl,*)
 	func_stripname '-Wl,' '' "$arg"
 	args=$func_stripname_result
@@ -7672,8 +7744,13 @@ func_mode_link ()
 	  IFS=$save_ifs
           func_quote_arg pretty "$flag"
 	  func_append arg " $wl$func_quote_arg_result"
-	  func_append compiler_flags " $wl$func_quote_arg_result"
-	  func_append linker_flags " $func_quote_arg_result"
+	  # Args in the var 'compiler_flags' causes warnings in MSVC
+	  func_cc_basename "$CC"
+	  case $func_cc_basename_result in
+	     cl|cl.exe) ;;
+	     *) func_append compiler_flags " $wl$func_quote_arg_result" ;;
+	  esac
+	  func_append linker_flags "$func_quote_arg_result,"
 	done
 	IFS=$save_ifs
 	func_stripname ' ' '' "$arg"
@@ -7719,6 +7796,7 @@ func_mode_link ()
       # @file                GCC response files
       # -tp=*                Portland pgcc target processor selection
       # --sysroot=*          for sysroot support
+      # --target=*           for target architecture support
       # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization
       # -specs=*             GCC specs files
       # -stdlib=*            select c++ std lib with clang
@@ -7736,15 +7814,15 @@ func_mode_link ()
       # --unwindlib=*        select unwinder library with clang
       # -f{file|debug|macro|profile}-prefix-map=* needed for lto linking
       # -Wa,*                Pass flags directly to the assembler
-      # -Werror, -Werror=*   Report (specified) warnings as errors
+      # -W*                  Warnings, needed for lto
       -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \
-      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \
+      -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*|--target=*| \
       -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-no-canonical-prefixes| \
       -stdlib=*|-rtlib=*|--unwindlib=*| \
       -specs=*|-fsanitize=*|-fno-sanitize*|-shared-libsan|-static-libsan| \
       -ffile-prefix-map=*|-fdebug-prefix-map=*|-fmacro-prefix-map=*|-fprofile-prefix-map=*| \
       -fdiagnostics-color*|-frecord-gcc-switches| \
-      -fuse-ld=*|-static-*|-fcilkplus|-Wa,*|-Werror|-Werror=*)
+      -fuse-ld=*|-static-*|-fcilkplus|-W*)
         func_quote_arg pretty "$arg"
 	arg=$func_quote_arg_result
         func_append compile_command " $arg"
@@ -8085,6 +8163,15 @@ func_mode_link ()
 	lib=
 	found=false
 	case $deplib in
+	-Wl,--as-needed|-Wl,--no-as-needed)
+	   if test prog,link = "$linkmode,$pass"; then
+         compile_deplibs="$deplib $compile_deplibs"
+         finalize_deplibs="$deplib $finalize_deplibs"
+       else
+         deplibs="$deplib $deplibs"
+       fi
+       continue
+       ;;
 	-mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \
         |-threads|-fopenmp|-fopenmp=*|-openmp|-mp|-xopenmp|-omp|-qsmp=*)
 	  if test prog,link = "$linkmode,$pass"; then
@@ -8243,8 +8330,15 @@ func_mode_link ()
 	  fi
 	  case $linkmode in
 	  lib)
-	    # Linking convenience modules into shared libraries is allowed,
-	    # but linking other static libraries is non-portable.
+	    # Linking convenience modules and compiler provided static libraries
+	    # into shared libraries is allowed, but linking other static
+	    # libraries is non-portable.
+	    case $deplib in
+	      */libgcc*.$libext | */libclang_rt*.$libext)
+		deplibs="$deplib $deplibs"
+		continue
+	      ;;
+	    esac
 	    case " $dlpreconveniencelibs " in
 	    *" $deplib "*) ;;
 	    *)
@@ -10029,7 +10123,7 @@ func_mode_link ()
 	if test -z "$export_symbols"; then
 	  if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then
 	    func_verbose "generating symbol list for '$libname.la'"
-	    export_symbols=$output_objdir/$libname.exp
+	    export_symbols=$output_objdir/$libname.expsym
 	    $opt_dry_run || $RM $export_symbols
 	    cmds=$export_symbols_cmds
 	    save_ifs=$IFS; IFS='~'
@@ -10295,7 +10389,7 @@ func_mode_link ()
 
 	    ${skipped_export-false} && {
 	      func_verbose "generating symbol list for '$libname.la'"
-	      export_symbols=$output_objdir/$libname.exp
+	      export_symbols=$output_objdir/$libname.expsym
 	      $opt_dry_run || $RM $export_symbols
 	      libobjs=$output
 	      # Append the command to create the export file.


=====================================
m4/libtool.m4
=====================================
@@ -32,7 +32,7 @@ m4_define([_LT_COPYING], [dnl
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 ])
 
-# serial 65 LT_INIT
+# serial 66 LT_INIT
 
 
 # LT_PREREQ(VERSION)
@@ -537,6 +537,26 @@ m4_defun([_LT_OBJECTIVE_C], [
     [Check for compiling Objective C and C++ code])
 ])
 
+m4_defun([_LT_ML64], [
+  AC_CACHE_CHECK([for ML64 compilation],
+    [lt_cv_ml64_compiles],
+    [ save_CFLAGS=$CFLAGS
+      CFLAGS=$ML64FLAGS
+      AC_COMPILE_IFELSE(
+        [AC_LANG_PROGRAM([ret
+],[])],
+        lt_cv_ml64_compiles=yes,
+        lt_cv_ml64_compiles=no
+      )
+      CFLAGS=$save_CFLAGS
+    ]
+  )
+  objc_compiles=$lt_cv_objc_compiles
+  _LT_DECL([], [ml64_compiles], [1],
+    [Check for compiling ml64 code])
+])
+
+
 # _LT_CONFIG_COMMANDS
 # -------------------
 # Send accumulated output to $CONFIG_STATUS.  Thanks to the lists of
@@ -858,6 +878,7 @@ m4_case([$1],
   [C++],		[_LT_LANG(CXX)],
   [Objective-C],		[_LT_LANG(OBJC)],
   [Objective-C++],	[_LT_LANG(OBJCXX)],
+  [Microsoft Macro Assembler],  [_LT_LANG(ML64)],
   [Go],			[_LT_LANG(GO)],
   [Java],		[_LT_LANG(GCJ)],
   [Fortran 77],		[_LT_LANG(F77)],
@@ -880,6 +901,26 @@ m4_defun([_LT_LANG],
 ])# _LT_LANG
 
 
+m4_ifndef([AC_PROG_ML64], [
+m4_defun([AC_PROG_ML64],
+[AC_LANG_PUSH(ML64)dnl
+AC_ARG_VAR([ML64],     [ml64 compiler command])dnl
+AC_ARG_VAR([ML64FLAGS], [ml64 compiler flags])dnl
+_AC_ARG_VAR_LDFLAGS()dnl
+AC_CHECK_TOOL(ML64, ml64)
+if test -z "$ML64"; then
+  if test -n "$ac_tool_prefix"; then
+    AC_CHECK_PROG(ML64, [${ac_tool_prefix}ml64], [${ac_tool_prefix}ml64])
+  fi
+fi
+if test -z "$ML64"; then
+  AC_CHECK_PROG(ML64, ml64, ml64, false)
+fi
+])#m4_defun
+])#m4_ifndef
+
+
+
 m4_ifndef([AC_PROG_GO], [
 ############################################################
 # NOTE: This macro has been submitted for inclusion into   #
@@ -930,11 +971,11 @@ AC_PROVIDE_IFELSE([AC_PROG_GCJ],
       [LT_LANG(GCJ)],
       [m4_ifdef([AC_PROG_GCJ],
 	[m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])])
+
        m4_ifdef([A][M_PROG_GCJ],
 	[m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])])
        m4_ifdef([LT_PROG_GCJ],
 	[m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])])
-
 AC_PROVIDE_IFELSE([AC_PROG_GO],
   [LT_LANG(GO)],
   [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])])
@@ -947,10 +988,17 @@ AC_PROVIDE_IFELSE([AC_PROG_OBJCXX],
   [LT_LANG(OBJCXX)],
   [m4_define([AC_PROG_OBJCXX], defn([AC_PROG_OBJCXX])[LT_LANG(OBJCXX)])])
 
+AC_PROVIDE_IFELSE([AC_PROG_ML64],
+  [LT_LANG(ML64)],
+  [m4_define([AC_PROG_ML64], defn([AC_PROG_ML64])[LT_LANG(ML64)])])
 AC_PROVIDE_IFELSE([LT_PROG_RC],
   [LT_LANG(RC)],
   [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])])
-])# _LT_LANG_DEFAULT_CONFIG
+
+
+])
+
+# _LT_LANG_DEFAULT_CONFIG
 
 # Obsolete macros:
 AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)])
@@ -1577,7 +1625,7 @@ _LT_DECL([], [AR], [1], [The archiver])
 
 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)])
+_LT_DECL([], [lt_ar_flags], [1], [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.
@@ -1680,9 +1728,9 @@ AC_CACHE_CHECK([$1], [$2],
    if (exit $ac_status) && test -s "$ac_outfile"; then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings other than the usual output.
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.expsym
      $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-     if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then
+     if test ! -s conftest.er2 || diff conftest.expsym conftest.er2 >/dev/null; then
        $2=yes
      fi
    fi
@@ -1720,9 +1768,9 @@ AC_CACHE_CHECK([$1], [$2],
      if test -s conftest.err; then
        # Append any errors to the config.log.
        cat conftest.err 1>&AS_MESSAGE_LOG_FD
-       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp
+       $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.expsym
        $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2
-       if diff conftest.exp conftest.er2 >/dev/null; then
+       if diff conftest.expsym conftest.er2 >/dev/null; then
          $2=yes
        fi
      else
@@ -2163,9 +2211,9 @@ AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext],
    then
      # The compiler can only warn and ignore the option if not recognized
      # So say no if there are warnings
-     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp
+     $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.expsym
      $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2
-     if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then
+     if test ! -s out/conftest.er2 || diff out/conftest.expsym out/conftest.er2 >/dev/null; then
        _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes
      fi
    fi
@@ -2668,8 +2716,8 @@ m4_if([$1], [],[
     dynamic_linker='Win32 ld.exe'
     ;;
 
-  *,cl* | *,icl*)
-    # Native MSVC or ICC
+  *,cl* | *,icl* | *,icx*)
+    # Native MSVC and Intel compilers
     libname_spec='$name'
     soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext'
     library_names_spec='$libname.dll.lib'
@@ -2929,6 +2977,18 @@ irix5* | irix6* | nonstopux*)
   hardcode_into_libs=yes
   ;;
 
+*-mlibc)
+  version_type=linux # correct to gnu/linux during the next big refactor
+  need_lib_prefix=no
+  need_version=no
+  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
+  soname_spec='$libname$release$shared_ext$major'
+  dynamic_linker='mlibc ld.so'
+  shlibpath_var=LD_LIBRARY_PATH
+  shlibpath_overrides_runpath=no
+  hardcode_into_libs=yes
+  ;;
+
 # No shared lib support for Linux oldld, aout, or coff.
 linux*oldld* | linux*aout* | linux*coff*)
   dynamic_linker=no
@@ -3040,18 +3100,6 @@ netbsd*)
   stdlibflag=
   ;;
 
-*-mlibc)
-  version_type=linux # correct to gnu/linux during the next big refactor
-  need_lib_prefix=no
-  need_version=no
-  library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
-  soname_spec='$libname$release$shared_ext$major'
-  dynamic_linker='mlibc ld.so'
-  shlibpath_var=LD_LIBRARY_PATH
-  shlibpath_overrides_runpath=no
-  hardcode_into_libs=yes
-  ;;
-
 newsos6)
   version_type=linux # correct to gnu/linux during the next big refactor
   library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext'
@@ -3713,12 +3761,12 @@ irix5* | irix6* | nonstopux*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-# This must be glibc/ELF.
-linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+*-mlibc)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
-*-mlibc)
+# This must be glibc/ELF.
+linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
   lt_cv_deplibs_check_method=pass_all
   ;;
 
@@ -4135,13 +4183,13 @@ 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 .* \([[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/\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'"
+  lt_cdecl_hook=" -e 's/^I .* \([[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/extern __declspec(dllimport) char \1;/p'"
+  lt_c_name_hook=" -e 's/^I .* \([[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/  {\"\1\", (void *) 0},/p'"
   lt_c_name_lib_hook="\
-  -e 's/^I .* \(lib.*\)$/  {\"\1\", (void *) 0},/p'\
-  -e 's/^I .* \(.*\)$/  {\"lib\1\", (void *) 0},/p'"
+  -e 's/^I .* \(lib[[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/  {\"\1\", (void *) 0},/p'\
+  -e 's/^I .* \([[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/  {\"lib\1\", (void *) 0},/p'"
 else
   # Disable hooks by default.
   lt_cv_sys_global_symbol_to_import=
@@ -4155,22 +4203,22 @@ fi
 # so use this general approach.
 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'"
+" -e 's/^T .* \([[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/extern int \1();/p'"\
+" -e 's/^$symcode$symcode* .* \([[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/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_c_name_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"\1\", (void *) \&\1},/p'"
+" -e 's/^$symcode$symcode* .* \([[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/  {\"\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_c_name_lib_hook\
 " -e 's/^: \(.*\) .*$/  {\"\1\", (void *) 0},/p'"\
-" -e 's/^$symcode$symcode* .* \(lib.*\)$/  {\"\1\", (void *) \&\1},/p'"\
-" -e 's/^$symcode$symcode* .* \(.*\)$/  {\"lib\1\", (void *) \&\1},/p'"
+" -e 's/^$symcode$symcode* .* \(lib[[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/  {\"\1\", (void *) \&\1},/p'"\
+" -e 's/^$symcode$symcode* .* \([[a-zA-Z_]][[a-zA-Z0-9_]]*\)$/  {\"lib\1\", (void *) \&\1},/p'"
 
 # Handle CRLF in mingw tool chain
 opt_cr=
@@ -4191,8 +4239,10 @@ for ac_symprfx in "" "_"; do
     # 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++ or ICC,
-    # which start with @ or ?.
+    # which start with @ or ?.  And Cygwin gawk-4.1.4-3 and newer
+    # treats input as binary, have to drop carriage return first.
     lt_cv_sys_global_symbol_pipe="$AWK ['"\
+"     {sub(/\\r\$/,\"\")};"\
 "     {last_section=section; section=\$ 3};"\
 "     /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\
 "     /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\
@@ -4468,7 +4518,7 @@ m4_if([$1], [CXX], [
 	  # AIX 5 now supports IA64 processor
 	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
 	else
-	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	  _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.expsym'
 	fi
 	;;
       chorus*)
@@ -4541,6 +4591,8 @@ m4_if([$1], [CXX], [
 	    ;;
 	esac
 	;;
+      *-mlibc)
+	;;
       linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
 	case $cc_basename in
 	  KCC*)
@@ -4554,7 +4606,7 @@ m4_if([$1], [CXX], [
 	    _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC'
 	    _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
 	    ;;
-	  icpc* )
+	  icpc* | icpx*)
 	    # Intel C++, used to be incompatible with GCC.
 	    # ICC 10 doesn't accept -KPIC any more.
 	    _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
@@ -4607,8 +4659,6 @@ m4_if([$1], [CXX], [
 	;;
       netbsd* | netbsdelf*-gnu)
 	;;
-      *-mlibc)
-	;;
       *qnx* | *nto*)
         # QNX uses GNU C++, but need to define -shared option too, otherwise
         # it will coredump.
@@ -4817,7 +4867,7 @@ m4_if([$1], [CXX], [
 	# AIX 5 now supports IA64 processor
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       else
-	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp'
+	_LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.expsym'
       fi
       ;;
 
@@ -4869,7 +4919,13 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared'
       ;;
 
-    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
+    *-mlibc)
+      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
+      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
+      _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
+      ;;
+
+    linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu* | freebsd*)
       case $cc_basename in
       # old Intel for x86_64, which still supported -KPIC.
       ecc*)
@@ -4885,7 +4941,7 @@ m4_if([$1], [CXX], [
         ;;
       # icc used to be incompatible with GCC.
       # ICC 10 doesn't accept -KPIC any more.
-      icc* | ifort*)
+      icc* | ifort* | icx* | ifx*)
 	_LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
 	_LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
 	_LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
@@ -4965,12 +5021,6 @@ m4_if([$1], [CXX], [
       _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic'
       ;;
 
-    *-mlibc)
-      _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,'
-      _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC'
-      _LT_TAGVAR(lt_prog_compiler_static, $1)='-static'
-      ;;
-
     *nto* | *qnx*)
       # QNX uses GNU C++, but need to define -shared option too, otherwise
       # it will coredump.
@@ -5127,7 +5177,8 @@ m4_if([$1], [CXX], [
     ;;
   cygwin* | mingw* | windows* | cegcc*)
     case $cc_basename in
-    cl* | icl*)
+    cl* | icl* | icx* | icpx*)
+      # Native MSVC and Intel compilers
       _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*'
       ;;
     *)
@@ -5372,6 +5423,11 @@ _LT_EOF
       _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'
       ;;
 
+    *-mlibc)
+	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
+      ;;
+
     gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu)
       tmp_diet=no
       if test linux-dietlibc = "$host_os"; then
@@ -5397,7 +5453,7 @@ _LT_EOF
 	  tmp_addflag=' -i_dynamic' ;;
 	efc*,ia64* | ifort*,ia64*)	# Intel Fortran compiler on ia64
 	  tmp_addflag=' -i_dynamic -nofor_main' ;;
-	ifc* | ifort*)			# Intel Fortran compiler
+	ifc* | ifort* | ifx*)		# Intel Fortran compiler
 	  tmp_addflag=' -nofor_main' ;;
 	lf95*)				# Lahey Fortran 8.1
 	  _LT_TAGVAR(whole_archive_flag_spec, $1)=
@@ -5452,11 +5508,6 @@ _LT_EOF
       fi
       ;;
 
-    *-mlibc)
-	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib'
-      ;;
-
     netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib'
@@ -5765,8 +5816,8 @@ _LT_EOF
       # hardcode_libdir_flag_spec is actually meaningless, as there is
       # no search path for DLLs.
       case $cc_basename in
-      cl* | icl*)
-	# Native MSVC or ICC
+      cl* | icl* | icx* | icpx*)
+	# Native MSVC and Intel compilers
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
 	_LT_TAGVAR(allow_undefined_flag, $1)=unsupported
 	_LT_TAGVAR(always_export_symbols, $1)=yes
@@ -5776,14 +5827,20 @@ _LT_EOF
 	# Tell ltmain to make .dll files, not .so files.
 	shrext_cmds=.dll
 	# FIXME: Setting linknames here is a bad hack.
+	# A check exists to verify if there are linker flags, which will use
+	# different commands when linking.
 	_LT_TAGVAR(archive_cmds, $1)='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
 	_LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
             cp "$export_symbols" "$output_objdir/$soname.def";
-            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+            echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.expsym";
+          else
+            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.expsym;
+          fi~
+          if test -z "$linker_flags"; then
+             $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.expsym" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
           else
-            $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+             $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.expsym" -Wl,$linker_flags-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
           fi~
-          $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
           linknames='
 	# The linker will not automatically build a static lib if we build a DLL.
 	# _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
@@ -5815,7 +5872,7 @@ _LT_EOF
 	# Tell ltmain to make .dll files, not .so files.
 	shrext_cmds=.dll
 	# FIXME: Setting linknames here is a bad hack.
-	_LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
+	_LT_TAGVAR(archive_cmds, $1)='$CC -Fe$lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames='
 	# The linker will automatically build a .lib file if we build a DLL.
 	_LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
 	# FIXME: Should let the user specify the lib program.
@@ -5989,6 +6046,9 @@ _LT_EOF
       _LT_TAGVAR(link_all_deplibs, $1)=yes
       ;;
 
+    *-mlibc)
+      ;;
+
     linux*)
       case $cc_basename in
       tcc*)
@@ -6000,9 +6060,6 @@ _LT_EOF
       esac
       ;;
 
-    *-mlibc)
-      ;;
-
     netbsd* | netbsdelf*-gnu)
       if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	_LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags'  # a.out
@@ -6094,8 +6151,8 @@ _LT_EOF
       else
 	_LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
 	_LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~
-          $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.expsym; done; printf "%s\\n" "-hidden">> $lib.expsym~
+          $CC -shared$allow_undefined_flag $wl-input $wl$lib.expsym $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.expsym'
 
 	# Both c and cxx compiler support -rpath directly
 	_LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
@@ -6112,21 +6169,21 @@ _LT_EOF
       if test yes = "$GCC"; then
 	wlarc='$wl'
 	_LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags'
-	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	_LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~
+          $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.expsym $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.expsym'
       else
 	case `$CC -V 2>&1` in
 	*"Compilers 5.0"*)
 	  wlarc=''
 	  _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-            $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~
+            $LD -G$allow_undefined_flag -M $lib.expsym -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.expsym'
 	  ;;
 	*)
 	  wlarc='$wl'
 	  _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags'
-	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-            $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp'
+	  _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~
+            $CC -G$allow_undefined_flag -M $lib.expsym -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.expsym'
 	  ;;
 	esac
       fi
@@ -6843,8 +6900,8 @@ if test yes != "$_lt_caught_CXX_error"; then
 
       cygwin* | mingw* | windows* | pw32* | cegcc*)
 	case $GXX,$cc_basename in
-	,cl* | no,cl* | ,icl* | no,icl*)
-	  # Native MSVC or ICC
+	,cl* | no,cl* | ,icl* | no,icl* | ,icx* | no,icx* | ,icpx* | no,icpx*)
+	  # Native MSVC and Intel compilers
 	  # hardcode_libdir_flag_spec is actually meaningless, as there is
 	  # no search path for DLLs.
 	  _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' '
@@ -6856,14 +6913,20 @@ if test yes != "$_lt_caught_CXX_error"; then
 	  # Tell ltmain to make .dll files, not .so files.
 	  shrext_cmds=.dll
 	  # FIXME: Setting linknames here is a bad hack.
-	  _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
+	  # A check exists to verify if there are linker flags, which will use
+	  # different commands when linking.
+	  _LT_TAGVAR(archive_cmds, $1)='$CC -Fe$output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames='
 	  _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then
               cp "$export_symbols" "$output_objdir/$soname.def";
-              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp";
+              echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.expsym";
             else
-              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp;
+              $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.expsym;
+            fi~
+            if test -z "$linker_flags"; then
+               $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.expsym" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
+            else
+               $CC -Fe$tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.expsym" -Wl,$linker_flags-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib";
             fi~
-            $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~
             linknames='
 	  # The linker will not automatically build a static lib if we build a DLL.
 	  # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true'
@@ -7141,6 +7204,10 @@ if test yes != "$_lt_caught_CXX_error"; then
         _LT_TAGVAR(inherit_rpath, $1)=yes
         ;;
 
+      *-mlibc)
+        _LT_TAGVAR(ld_shlibs, $1)=yes
+	;;
+
       linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*)
         case $cc_basename in
           KCC*)
@@ -7168,7 +7235,7 @@ if test yes != "$_lt_caught_CXX_error"; then
 	    # "CC -Bstatic", where "CC" is the KAI C++ compiler.
 	    _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs'
 	    ;;
-	  icpc* | ecpc* )
+	  icpc* | ecpc* | icpx*)
 	    # Intel C++
 	    with_gnu_ld=yes
 	    # version 8.0 and above of icpc choke on multiply defined symbols
@@ -7306,10 +7373,6 @@ if test yes != "$_lt_caught_CXX_error"; then
 	esac
 	;;
 
-      *-mlibc)
-        _LT_TAGVAR(ld_shlibs, $1)=yes
-	;;
-
       netbsd*)
         if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then
 	  _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable  -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags'
@@ -7381,10 +7444,10 @@ if test yes != "$_lt_caught_CXX_error"; then
 	      *)
 	        _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*'
 	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~
-                  echo "-hidden">> $lib.exp~
-                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
-                  $RM $lib.exp'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.expsym; done~
+                  echo "-hidden">> $lib.expsym~
+                  $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.expsym  `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~
+                  $RM $lib.expsym'
 	        _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir'
 		;;
 	    esac
@@ -7463,8 +7526,8 @@ if test yes != "$_lt_caught_CXX_error"; then
             _LT_TAGVAR(archive_cmds_need_lc,$1)=yes
 	    _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs'
 	    _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags'
-	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-              $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+	    _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~
+              $CC -G$allow_undefined_flag $wl-M $wl$lib.expsym -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.expsym'
 
 	    _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir'
 	    _LT_TAGVAR(hardcode_shlibpath_var, $1)=no
@@ -7500,8 +7563,8 @@ if test yes != "$_lt_caught_CXX_error"; then
 	      _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs'
 	      if $CC --version | $GREP -v '^2\.7' > /dev/null; then
 	        _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $stdlibflag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                  $CC -shared $pic_flag $stdlibflag $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~
+                  $CC -shared $pic_flag $stdlibflag $wl-M $wl$lib.expsym $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.expsym'
 
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
@@ -7511,8 +7574,8 @@ if test yes != "$_lt_caught_CXX_error"; then
 	        # g++ 2.7 appears to require '-G' NOT '-shared' on this
 	        # platform.
 	        _LT_TAGVAR(archive_cmds, $1)='$CC -G $stdlibflag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib'
-	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~
-                  $CC -G $stdlibflag $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp'
+	        _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.expsym~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.expsym~echo "local: *; };" >> $lib.expsym~
+                  $CC -G $stdlibflag $wl-M $wl$lib.expsym $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.expsym'
 
 	        # Commands to make compiler produce verbose output that lists
 	        # what "hidden" libraries, object files and flags are used when
@@ -7758,7 +7821,7 @@ if AC_TRY_EVAL(ac_compile); then
   for p in `eval "$output_verbose_link_cmd"`; do
     case $prev$p in
 
-    -L* | -R* | -l*)
+    -L* | -R* | -l* | */libclang_rt.*.a)
        # Some compilers place space between "-{L,R,l}" and the path.
        # Remove the space.
        if test x-L = x"$p" ||
@@ -8221,6 +8284,76 @@ CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_GCJ_CONFIG
 
 
+# _LT_LANG_ML64_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the ML64 assembler
+# are suitably defined.  These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to 'libtool'.
+m4_defun([_LT_LANG_ML64_CONFIG],
+[AC_REQUIRE([LT_PROG_ML64])dnl
+AC_LANG_SAVE
+
+# Source file extension for ML64 test sources.
+ac_ext=asm
+
+#Object file extension for compile ML64 test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="main PROC ret main ENDP"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code="main PROC ret main ENDP"
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# TODO? Check for compilation issues with ML64 flags.
+
+# Allow CC to be a program name with arguments.
+lt_save_CC=$CC
+lt_save_CFLAGS=$CFLAGS
+lt_save_GCC=$GCC
+GCC=yes
+CC=${ML64-"gcc"}
+CFLAGS=$ML64FLAGS
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_TAGVAR(LD, $1)=$LD
+_LT_CC_BASENAME([$compiler])
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+_LT_TAGVAR(reload_flag, $1)=$reload_flag
+_LT_TAGVAR(reload_cmds, $1)=$reload_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+  _LT_COMPILER_NO_RTTI($1)
+  _LT_COMPILER_PIC($1)
+  _LT_COMPILER_C_O($1)
+  _LT_COMPILER_FILE_LOCKS($1)
+  _LT_LINKER_SHLIBS($1)
+  _LT_LINKER_HARDCODE_LIBPATH($1)
+
+  _LT_CONFIG($1)
+fi
+
+AC_LANG_RESTORE
+
+GCC=$lt_save_GCC
+CC=$lt_save_CC
+CFLAGS=$lt_save_CFLAGS
+])# _LT_LANG_ML64_CONFIG
+
+
 # _LT_LANG_GO_CONFIG([TAG])
 # --------------------------
 # Ensure that the configuration variables for the GNU Go compiler
@@ -8489,6 +8622,12 @@ CC=$lt_save_CC
 CFLAGS=$lt_save_CFLAGS
 ])# _LT_LANG_RC_CONFIG
 
+# LT_PROG_ML64
+# -----------
+AC_DEFUN([LT_PROG_ML64],
+[AC_CHECK_TOOL(ML64, ml64,)
+])
+
 
 # LT_PROG_OBJC
 # -----------
@@ -8702,4 +8841,40 @@ to_tool_file_cmd=$lt_cv_to_tool_file_cmd
 AC_MSG_RESULT([$lt_cv_to_tool_file_cmd])
 _LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd],
          [0], [convert $build files to toolchain format])dnl
+
+AS_CASE([$host],
+  [*-*-mingw* | *-*-windows* | *-*-cygwin*],
+  [AS_CASE([$build],
+    [*-*-mingw* | *-*-windows* | *-*-cygwin*],
+    [AC_MSG_CHECKING([whether cygpath is installed])
+      AC_CACHE_VAL([lt_cv_cygpath_installed],
+        [lt_cv_cygpath_installed=ignoring
+          cygpath --help &> /dev/null
+          _lt_result=$?
+          AS_IF([test 0 = "$_lt_result"],
+            [lt_cv_cygpath_installed=yes],
+            [lt_cv_cygpath_installed=no])
+        ])
+      AC_MSG_RESULT([$lt_cv_cygpath_installed])
+      _LT_DECL([cygpath_installed], [lt_cv_cygpath_installed],
+               [0], [whether cygpath is installed])dnl
+      AS_IF([test "xyes" != "x$lt_cv_cygpath_installed"],
+        [
+          AC_MSG_CHECKING([whether to use cmd with one slash or two slashes])
+          AC_CACHE_VAL([lt_cv_cmd_slashes],
+            [
+              _lt_result=`cmd /c echo one-slash works. Not checked //c echo two-slashes 2>/dev/null`
+              AS_IF([test 0 != $?],
+                [AC_MSG_ERROR([Do not know how to convert paths])])
+              AS_CASE([$_lt_result],
+                [one-slash*],[lt_cv_cmd_slashes="one"],
+                [two-slashes*],[lt_cv_cmd_slashes="two"],
+                [AC_MSG_ERROR([Do not know how to convert paths])]
+              )
+            ])
+          AC_MSG_RESULT([$lt_cv_cmd_slashes])
+        ])
+    ])
+  ]
+)dnl
 ])# _LT_PATH_CONVERSION_FUNCTIONS


=====================================
m4/ltversion.m4
=====================================
@@ -10,15 +10,15 @@
 
 # @configure_input@
 
-# serial 4464 ltversion.m4
+# serial 4509 ltversion.m4
 # This file is part of GNU Libtool
 
-m4_define([LT_PACKAGE_VERSION], [2.5.4.23-5b58])
-m4_define([LT_PACKAGE_REVISION], [2.5.4.23])
+m4_define([LT_PACKAGE_VERSION], [2.6.0])
+m4_define([LT_PACKAGE_REVISION], [2.6.0])
 
 AC_DEFUN([LTVERSION_VERSION],
-[macro_version='2.5.4.23-5b58'
-macro_revision='2.5.4.23'
+[macro_version='2.6.0'
+macro_revision='2.6.0'
 _LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
 _LT_DECL(, macro_revision, 0)
 ])


=====================================
po/xfce4-session.pot
=====================================
@@ -6,9 +6,9 @@
 #, fuzzy
 msgid ""
 msgstr ""
-"Project-Id-Version: xfce4-session 4.20.3\n"
+"Project-Id-Version: xfce4-session 4.20.4\n"
 "Report-Msgid-Bugs-To: https://gitlab.xfce.org/xfce/xfce4-session\n"
-"POT-Creation-Date: 2025-03-22 06:42+0100\n"
+"POT-Creation-Date: 2026-02-07 06:31+0100\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL at ADDRESS>\n"
 "Language-Team: LANGUAGE <LL at li.org>\n"
@@ -112,7 +112,7 @@ msgid "Unable to save the session"
 msgstr ""
 
 #: settings/session-editor.c:139 settings/session-editor.c:322
-#: xfce4-session/xfsm-manager.c:1327 settings/xfce4-session-settings.ui:95
+#: xfce4-session/xfsm-manager.c:1330 settings/xfce4-session-settings.ui:95
 msgid "_Close"
 msgstr ""
 
@@ -131,7 +131,7 @@ msgid "Are you sure you want to empty the session cache?"
 msgstr ""
 
 #: settings/session-editor.c:202 settings/session-editor.c:294
-#: settings/xfae-dialog.c:79 xfce4-session/xfsm-manager.c:727
+#: settings/xfae-dialog.c:79 xfce4-session/xfsm-manager.c:730
 #: xfce4-session/xfsm-logout-dialog.c:230
 msgid "_Cancel"
 msgstr ""
@@ -192,7 +192,7 @@ msgstr ""
 msgid "Restart Style"
 msgstr ""
 
-#: settings/xfae-dialog.c:79 xfce4-session/xfsm-manager.c:728
+#: settings/xfae-dialog.c:79 xfce4-session/xfsm-manager.c:731
 msgid "_OK"
 msgstr ""
 
@@ -402,7 +402,7 @@ msgstr ""
 msgid "Try again"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:592
+#: xfce4-session/xfsm-manager.c:595
 #, c-format
 msgid ""
 "Unable to determine failsafe session name.  Possible causes: xfconfd isn't "
@@ -410,77 +410,77 @@ msgid ""
 "incorrectly (must include \"%s\"), or xfce4-session is installed incorrectly."
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:617
+#: xfce4-session/xfsm-manager.c:620
 #, c-format
 msgid ""
 "The specified failsafe session (\"%s\") is not marked as a failsafe session."
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:656
+#: xfce4-session/xfsm-manager.c:659
 msgid "The list of applications in the failsafe session is empty."
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:740
+#: xfce4-session/xfsm-manager.c:743
 msgid "Name for the new session"
 msgstr ""
 
 #. FIXME: migrate this into the splash screen somehow so the
 #. * window doesn't look ugly (right now no WM is running, so it
 #. * won't have window decorations).
-#: xfce4-session/xfsm-manager.c:817
+#: xfce4-session/xfsm-manager.c:820
 msgid "Session Manager Error"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:818
+#: xfce4-session/xfsm-manager.c:821
 msgid "Unable to load a failsafe session"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:820
+#: xfce4-session/xfsm-manager.c:823
 msgid "_Quit"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:1317
+#: xfce4-session/xfsm-manager.c:1320
 msgid "Shutdown Failed"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:1320
+#: xfce4-session/xfsm-manager.c:1323
 msgid "Failed to suspend session"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:1322
+#: xfce4-session/xfsm-manager.c:1325
 msgid "Failed to hibernate session"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:1324
+#: xfce4-session/xfsm-manager.c:1327
 msgid "Failed to hybrid sleep session"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:1325
+#: xfce4-session/xfsm-manager.c:1328
 msgid "Failed to switch user"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:1647
+#: xfce4-session/xfsm-manager.c:1650
 msgid "Can only terminate clients when in the idle state"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:2355
+#: xfce4-session/xfsm-manager.c:2361
 msgid "Session manager must be in idle state when requesting a checkpoint"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:2425 xfce4-session/xfsm-manager.c:2445
+#: xfce4-session/xfsm-manager.c:2434 xfce4-session/xfsm-manager.c:2454
 msgid "Session manager must be in idle state when requesting a shutdown"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:2482
+#: xfce4-session/xfsm-manager.c:2491
 msgid "Session manager must be in idle state when requesting a restart"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:2518 xfce4-session/xfsm-manager.c:2557
-#: xfce4-session/xfsm-manager.c:2595
+#: xfce4-session/xfsm-manager.c:2527 xfce4-session/xfsm-manager.c:2566
+#: xfce4-session/xfsm-manager.c:2604
 msgid "Session manager must be in idle state when requesting a sleep"
 msgstr ""
 
-#: xfce4-session/xfsm-manager.c:2722
+#: xfce4-session/xfsm-manager.c:2731
 msgid "Session manager must be in idle state when requesting a user switch"
 msgstr ""
 


=====================================
scripts/startxfce4.in
=====================================
@@ -140,7 +140,9 @@ then
     # Set labwc keymap to match system-wide keymap only in absence of
     # a user-created 'lock' file, just in case user doesn't want any
     # modification of the environment and rc.xml files.
-    if [ ! -e "${XDG_CONFIG_HOME:-${HOME}/.config}/xfce4/labwc/lock" ] && [ -e /etc/vconsole.conf ]; then
+    if [ ! -e "${XDG_CONFIG_HOME:-${HOME}/.config}/xfce4/labwc/lock" ]; then
+      # Linux
+      if [ -e /etc/vconsole.conf ]; then 
        LABWC_KEYMAP=$(awk -F '=' -v q1=\' -v q2=\" '
          $1 == "KEYMAP" {
            gsub ("[" q1 q2 "]", "", $2)
@@ -156,24 +158,28 @@ then
            variant = $2
          }
          END {
-           if (keymap != "") {
-             print keymap
-           } else if (layout != "") {
+           if (layout != "") {
              if (variant != "") {
                print layout "(" variant ")"
              } else {
                print layout
              }
+           } else if (keymap != "") {
+             print keymap
            }
          }
        ' /etc/vconsole.conf)
-       if [ -n "$LABWC_KEYMAP" ]; then
+      # OpenBSD
+      elif [ -e /etc/kbdtype ]; then
+        LABWC_KEYMAP=$(tr -d ' ' </etc/kbdtype | cut -c-2)
+      fi
+      if [ -n "$LABWC_KEYMAP" ]; then
          sed -i \
            -e "s|XKB_DEFAULT_LAYOUT=.*|XKB_DEFAULT_LAYOUT=${LABWC_KEYMAP}|g" \
            "${XDG_CONFIG_HOME:-${HOME}/.config}/xfce4/labwc/environment"
-       else
+      else
          echo "Keyboard layout detection failed"
-       fi
+      fi
     fi
     # Xfce will use its own config directory and config file to avoid
     # conflict with current labwc setup and avoid launching anything


=====================================
settings/xfsm-client-dbus-client.c
=====================================
@@ -1719,7 +1719,7 @@ xfsm_client_call_get_id (
 gboolean
 xfsm_client_call_get_id_finish (
     XfsmClient *proxy,
-    gchar **out_id,
+    gchar ** out_id,
     GAsyncResult *res,
     GError **error)
 {
@@ -1751,7 +1751,7 @@ _out:
 gboolean
 xfsm_client_call_get_id_sync (
     XfsmClient *proxy,
-    gchar **out_id,
+    gchar ** out_id,
     GCancellable *cancellable,
     GError **error)
 {
@@ -1817,7 +1817,7 @@ xfsm_client_call_get_state (
 gboolean
 xfsm_client_call_get_state_finish (
     XfsmClient *proxy,
-    guint *out_state,
+    guint* out_state,
     GAsyncResult *res,
     GError **error)
 {
@@ -1849,7 +1849,7 @@ _out:
 gboolean
 xfsm_client_call_get_state_sync (
     XfsmClient *proxy,
-    guint *out_state,
+    guint* out_state,
     GCancellable *cancellable,
     GError **error)
 {
@@ -1915,7 +1915,7 @@ xfsm_client_call_get_all_sm_properties (
 gboolean
 xfsm_client_call_get_all_sm_properties_finish (
     XfsmClient *proxy,
-    GVariant **out_properties,
+    GVariant ** out_properties,
     GAsyncResult *res,
     GError **error)
 {
@@ -1947,7 +1947,7 @@ _out:
 gboolean
 xfsm_client_call_get_all_sm_properties_sync (
     XfsmClient *proxy,
-    GVariant **out_properties,
+    GVariant ** out_properties,
     GCancellable *cancellable,
     GError **error)
 {
@@ -2016,7 +2016,7 @@ xfsm_client_call_get_sm_properties (
 gboolean
 xfsm_client_call_get_sm_properties_finish (
     XfsmClient *proxy,
-    GVariant **out_values,
+    GVariant ** out_values,
     GAsyncResult *res,
     GError **error)
 {
@@ -2050,7 +2050,7 @@ gboolean
 xfsm_client_call_get_sm_properties_sync (
     XfsmClient *proxy,
     const gchar *const *arg_names,
-    GVariant **out_values,
+    GVariant ** out_values,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3364,8 +3364,14 @@ xfsm_client_skeleton_finalize (GObject *object)
 {
   XfsmClientSkeleton *skeleton = XFSM_CLIENT_SKELETON (object);
   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+  /* coverity[missing_lock : SUPPRESS] */
+  g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy);
+#else
   if (skeleton->priv->changed_properties_idle_source != NULL)
     g_source_destroy (skeleton->priv->changed_properties_idle_source);
+skeleton->priv->changed_properties_idle_source = NULL;
+#endif
   g_main_context_unref (skeleton->priv->context);
   g_mutex_clear (&skeleton->priv->lock);
   G_OBJECT_CLASS (xfsm_client_skeleton_parent_class)->finalize (object);


=====================================
settings/xfsm-client-dbus-client.h
=====================================
@@ -183,13 +183,13 @@ void xfsm_client_call_get_id (
 
 gboolean xfsm_client_call_get_id_finish (
     XfsmClient *proxy,
-    gchar **out_id,
+    gchar ** out_id,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_client_call_get_id_sync (
     XfsmClient *proxy,
-    gchar **out_id,
+    gchar ** out_id,
     GCancellable *cancellable,
     GError **error);
 
@@ -201,13 +201,13 @@ void xfsm_client_call_get_state (
 
 gboolean xfsm_client_call_get_state_finish (
     XfsmClient *proxy,
-    guint *out_state,
+    guint* out_state,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_client_call_get_state_sync (
     XfsmClient *proxy,
-    guint *out_state,
+    guint* out_state,
     GCancellable *cancellable,
     GError **error);
 
@@ -219,13 +219,13 @@ void xfsm_client_call_get_all_sm_properties (
 
 gboolean xfsm_client_call_get_all_sm_properties_finish (
     XfsmClient *proxy,
-    GVariant **out_properties,
+    GVariant ** out_properties,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_client_call_get_all_sm_properties_sync (
     XfsmClient *proxy,
-    GVariant **out_properties,
+    GVariant ** out_properties,
     GCancellable *cancellable,
     GError **error);
 
@@ -238,14 +238,14 @@ void xfsm_client_call_get_sm_properties (
 
 gboolean xfsm_client_call_get_sm_properties_finish (
     XfsmClient *proxy,
-    GVariant **out_values,
+    GVariant ** out_values,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_client_call_get_sm_properties_sync (
     XfsmClient *proxy,
     const gchar *const *arg_names,
-    GVariant **out_values,
+    GVariant ** out_values,
     GCancellable *cancellable,
     GError **error);
 


=====================================
settings/xfsm-manager-dbus-client.c
=====================================
@@ -2515,9 +2515,9 @@ xfsm_manager_call_get_info (
 gboolean
 xfsm_manager_call_get_info_finish (
     XfsmManager *proxy,
-    gchar **out_name,
-    gchar **out_version,
-    gchar **out_vendor,
+    gchar ** out_name,
+    gchar ** out_version,
+    gchar ** out_vendor,
     GAsyncResult *res,
     GError **error)
 {
@@ -2553,9 +2553,9 @@ _out:
 gboolean
 xfsm_manager_call_get_info_sync (
     XfsmManager *proxy,
-    gchar **out_name,
-    gchar **out_version,
-    gchar **out_vendor,
+    gchar ** out_name,
+    gchar ** out_version,
+    gchar ** out_vendor,
     GCancellable *cancellable,
     GError **error)
 {
@@ -2623,7 +2623,7 @@ xfsm_manager_call_list_clients (
 gboolean
 xfsm_manager_call_list_clients_finish (
     XfsmManager *proxy,
-    gchar ***out_clients,
+    gchar *** out_clients,
     GAsyncResult *res,
     GError **error)
 {
@@ -2655,7 +2655,7 @@ _out:
 gboolean
 xfsm_manager_call_list_clients_sync (
     XfsmManager *proxy,
-    gchar ***out_clients,
+    gchar *** out_clients,
     GCancellable *cancellable,
     GError **error)
 {
@@ -2721,7 +2721,7 @@ xfsm_manager_call_get_state (
 gboolean
 xfsm_manager_call_get_state_finish (
     XfsmManager *proxy,
-    guint *out_state,
+    guint* out_state,
     GAsyncResult *res,
     GError **error)
 {
@@ -2753,7 +2753,7 @@ _out:
 gboolean
 xfsm_manager_call_get_state_sync (
     XfsmManager *proxy,
-    guint *out_state,
+    guint* out_state,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3119,7 +3119,7 @@ xfsm_manager_call_can_shutdown (
 gboolean
 xfsm_manager_call_can_shutdown_finish (
     XfsmManager *proxy,
-    gboolean *out_can_shutdown,
+    gboolean* out_can_shutdown,
     GAsyncResult *res,
     GError **error)
 {
@@ -3151,7 +3151,7 @@ _out:
 gboolean
 xfsm_manager_call_can_shutdown_sync (
     XfsmManager *proxy,
-    gboolean *out_can_shutdown,
+    gboolean* out_can_shutdown,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3315,7 +3315,7 @@ xfsm_manager_call_can_restart (
 gboolean
 xfsm_manager_call_can_restart_finish (
     XfsmManager *proxy,
-    gboolean *out_can_restart,
+    gboolean* out_can_restart,
     GAsyncResult *res,
     GError **error)
 {
@@ -3347,7 +3347,7 @@ _out:
 gboolean
 xfsm_manager_call_can_restart_sync (
     XfsmManager *proxy,
-    gboolean *out_can_restart,
+    gboolean* out_can_restart,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3505,7 +3505,7 @@ xfsm_manager_call_can_suspend (
 gboolean
 xfsm_manager_call_can_suspend_finish (
     XfsmManager *proxy,
-    gboolean *out_can_suspend,
+    gboolean* out_can_suspend,
     GAsyncResult *res,
     GError **error)
 {
@@ -3537,7 +3537,7 @@ _out:
 gboolean
 xfsm_manager_call_can_suspend_sync (
     XfsmManager *proxy,
-    gboolean *out_can_suspend,
+    gboolean* out_can_suspend,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3695,7 +3695,7 @@ xfsm_manager_call_can_hibernate (
 gboolean
 xfsm_manager_call_can_hibernate_finish (
     XfsmManager *proxy,
-    gboolean *out_can_hibernate,
+    gboolean* out_can_hibernate,
     GAsyncResult *res,
     GError **error)
 {
@@ -3727,7 +3727,7 @@ _out:
 gboolean
 xfsm_manager_call_can_hibernate_sync (
     XfsmManager *proxy,
-    gboolean *out_can_hibernate,
+    gboolean* out_can_hibernate,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3885,7 +3885,7 @@ xfsm_manager_call_can_hybrid_sleep (
 gboolean
 xfsm_manager_call_can_hybrid_sleep_finish (
     XfsmManager *proxy,
-    gboolean *out_can_hybrid_sleep,
+    gboolean* out_can_hybrid_sleep,
     GAsyncResult *res,
     GError **error)
 {
@@ -3917,7 +3917,7 @@ _out:
 gboolean
 xfsm_manager_call_can_hybrid_sleep_sync (
     XfsmManager *proxy,
-    gboolean *out_can_hybrid_sleep,
+    gboolean* out_can_hybrid_sleep,
     GCancellable *cancellable,
     GError **error)
 {
@@ -4081,7 +4081,7 @@ xfsm_manager_call_register_client (
 gboolean
 xfsm_manager_call_register_client_finish (
     XfsmManager *proxy,
-    gchar **out_client_id,
+    gchar ** out_client_id,
     GAsyncResult *res,
     GError **error)
 {
@@ -4117,7 +4117,7 @@ xfsm_manager_call_register_client_sync (
     XfsmManager *proxy,
     const gchar *arg_app_id,
     const gchar *arg_client_startup_id,
-    gchar **out_client_id,
+    gchar ** out_client_id,
     GCancellable *cancellable,
     GError **error)
 {
@@ -4295,7 +4295,7 @@ xfsm_manager_call_inhibit (
 gboolean
 xfsm_manager_call_inhibit_finish (
     XfsmManager *proxy,
-    guint *out_inhibit_cookie,
+    guint* out_inhibit_cookie,
     GAsyncResult *res,
     GError **error)
 {
@@ -4335,7 +4335,7 @@ xfsm_manager_call_inhibit_sync (
     guint arg_toplevel_xid,
     const gchar *arg_reason,
     guint arg_flags,
-    guint *out_inhibit_cookie,
+    guint* out_inhibit_cookie,
     GCancellable *cancellable,
     GError **error)
 {
@@ -4506,7 +4506,7 @@ xfsm_manager_call_is_inhibited (
 gboolean
 xfsm_manager_call_is_inhibited_finish (
     XfsmManager *proxy,
-    gboolean *out_is_inhibited,
+    gboolean* out_is_inhibited,
     GAsyncResult *res,
     GError **error)
 {
@@ -4540,7 +4540,7 @@ gboolean
 xfsm_manager_call_is_inhibited_sync (
     XfsmManager *proxy,
     guint arg_flags,
-    gboolean *out_is_inhibited,
+    gboolean* out_is_inhibited,
     GCancellable *cancellable,
     GError **error)
 {
@@ -4607,7 +4607,7 @@ xfsm_manager_call_lock (
 gboolean
 xfsm_manager_call_lock_finish (
     XfsmManager *proxy,
-    gboolean *out_locked,
+    gboolean* out_locked,
     GAsyncResult *res,
     GError **error)
 {
@@ -4639,7 +4639,7 @@ _out:
 gboolean
 xfsm_manager_call_lock_sync (
     XfsmManager *proxy,
-    gboolean *out_locked,
+    gboolean* out_locked,
     GCancellable *cancellable,
     GError **error)
 {
@@ -5746,8 +5746,14 @@ xfsm_manager_skeleton_finalize (GObject *object)
 {
   XfsmManagerSkeleton *skeleton = XFSM_MANAGER_SKELETON (object);
   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+  /* coverity[missing_lock : SUPPRESS] */
+  g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy);
+#else
   if (skeleton->priv->changed_properties_idle_source != NULL)
     g_source_destroy (skeleton->priv->changed_properties_idle_source);
+skeleton->priv->changed_properties_idle_source = NULL;
+#endif
   g_main_context_unref (skeleton->priv->context);
   g_mutex_clear (&skeleton->priv->lock);
   G_OBJECT_CLASS (xfsm_manager_skeleton_parent_class)->finalize (object);


=====================================
settings/xfsm-manager-dbus-client.h
=====================================
@@ -282,17 +282,17 @@ void xfsm_manager_call_get_info (
 
 gboolean xfsm_manager_call_get_info_finish (
     XfsmManager *proxy,
-    gchar **out_name,
-    gchar **out_version,
-    gchar **out_vendor,
+    gchar ** out_name,
+    gchar ** out_version,
+    gchar ** out_vendor,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_get_info_sync (
     XfsmManager *proxy,
-    gchar **out_name,
-    gchar **out_version,
-    gchar **out_vendor,
+    gchar ** out_name,
+    gchar ** out_version,
+    gchar ** out_vendor,
     GCancellable *cancellable,
     GError **error);
 
@@ -304,13 +304,13 @@ void xfsm_manager_call_list_clients (
 
 gboolean xfsm_manager_call_list_clients_finish (
     XfsmManager *proxy,
-    gchar ***out_clients,
+    gchar *** out_clients,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_list_clients_sync (
     XfsmManager *proxy,
-    gchar ***out_clients,
+    gchar *** out_clients,
     GCancellable *cancellable,
     GError **error);
 
@@ -322,13 +322,13 @@ void xfsm_manager_call_get_state (
 
 gboolean xfsm_manager_call_get_state_finish (
     XfsmManager *proxy,
-    guint *out_state,
+    guint* out_state,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_get_state_sync (
     XfsmManager *proxy,
-    guint *out_state,
+    guint* out_state,
     GCancellable *cancellable,
     GError **error);
 
@@ -396,13 +396,13 @@ void xfsm_manager_call_can_shutdown (
 
 gboolean xfsm_manager_call_can_shutdown_finish (
     XfsmManager *proxy,
-    gboolean *out_can_shutdown,
+    gboolean* out_can_shutdown,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_can_shutdown_sync (
     XfsmManager *proxy,
-    gboolean *out_can_shutdown,
+    gboolean* out_can_shutdown,
     GCancellable *cancellable,
     GError **error);
 
@@ -432,13 +432,13 @@ void xfsm_manager_call_can_restart (
 
 gboolean xfsm_manager_call_can_restart_finish (
     XfsmManager *proxy,
-    gboolean *out_can_restart,
+    gboolean* out_can_restart,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_can_restart_sync (
     XfsmManager *proxy,
-    gboolean *out_can_restart,
+    gboolean* out_can_restart,
     GCancellable *cancellable,
     GError **error);
 
@@ -466,13 +466,13 @@ void xfsm_manager_call_can_suspend (
 
 gboolean xfsm_manager_call_can_suspend_finish (
     XfsmManager *proxy,
-    gboolean *out_can_suspend,
+    gboolean* out_can_suspend,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_can_suspend_sync (
     XfsmManager *proxy,
-    gboolean *out_can_suspend,
+    gboolean* out_can_suspend,
     GCancellable *cancellable,
     GError **error);
 
@@ -500,13 +500,13 @@ void xfsm_manager_call_can_hibernate (
 
 gboolean xfsm_manager_call_can_hibernate_finish (
     XfsmManager *proxy,
-    gboolean *out_can_hibernate,
+    gboolean* out_can_hibernate,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_can_hibernate_sync (
     XfsmManager *proxy,
-    gboolean *out_can_hibernate,
+    gboolean* out_can_hibernate,
     GCancellable *cancellable,
     GError **error);
 
@@ -534,13 +534,13 @@ void xfsm_manager_call_can_hybrid_sleep (
 
 gboolean xfsm_manager_call_can_hybrid_sleep_finish (
     XfsmManager *proxy,
-    gboolean *out_can_hybrid_sleep,
+    gboolean* out_can_hybrid_sleep,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_can_hybrid_sleep_sync (
     XfsmManager *proxy,
-    gboolean *out_can_hybrid_sleep,
+    gboolean* out_can_hybrid_sleep,
     GCancellable *cancellable,
     GError **error);
 
@@ -570,7 +570,7 @@ void xfsm_manager_call_register_client (
 
 gboolean xfsm_manager_call_register_client_finish (
     XfsmManager *proxy,
-    gchar **out_client_id,
+    gchar ** out_client_id,
     GAsyncResult *res,
     GError **error);
 
@@ -578,7 +578,7 @@ gboolean xfsm_manager_call_register_client_sync (
     XfsmManager *proxy,
     const gchar *arg_app_id,
     const gchar *arg_client_startup_id,
-    gchar **out_client_id,
+    gchar ** out_client_id,
     GCancellable *cancellable,
     GError **error);
 
@@ -612,7 +612,7 @@ void xfsm_manager_call_inhibit (
 
 gboolean xfsm_manager_call_inhibit_finish (
     XfsmManager *proxy,
-    guint *out_inhibit_cookie,
+    guint* out_inhibit_cookie,
     GAsyncResult *res,
     GError **error);
 
@@ -622,7 +622,7 @@ gboolean xfsm_manager_call_inhibit_sync (
     guint arg_toplevel_xid,
     const gchar *arg_reason,
     guint arg_flags,
-    guint *out_inhibit_cookie,
+    guint* out_inhibit_cookie,
     GCancellable *cancellable,
     GError **error);
 
@@ -653,14 +653,14 @@ void xfsm_manager_call_is_inhibited (
 
 gboolean xfsm_manager_call_is_inhibited_finish (
     XfsmManager *proxy,
-    gboolean *out_is_inhibited,
+    gboolean* out_is_inhibited,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_is_inhibited_sync (
     XfsmManager *proxy,
     guint arg_flags,
-    gboolean *out_is_inhibited,
+    gboolean* out_is_inhibited,
     GCancellable *cancellable,
     GError **error);
 
@@ -672,13 +672,13 @@ void xfsm_manager_call_lock (
 
 gboolean xfsm_manager_call_lock_finish (
     XfsmManager *proxy,
-    gboolean *out_locked,
+    gboolean* out_locked,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_manager_call_lock_sync (
     XfsmManager *proxy,
-    gboolean *out_locked,
+    gboolean* out_locked,
     GCancellable *cancellable,
     GError **error);
 


=====================================
xfce4-session/xfce-portals.conf
=====================================
@@ -5,3 +5,4 @@ org.freedesktop.impl.portal.Screenshot=xapp;gtk;
 org.freedesktop.impl.portal.Background=xapp;gtk;
 org.freedesktop.impl.portal.ScreenCast=wlr;gtk;
 org.freedesktop.impl.portal.Settings=xapp;gtk;
+org.freedesktop.impl.portal.Secret=gnome-keyring;gtk;


=====================================
xfce4-session/xfsm-client-dbus.c
=====================================
@@ -1719,7 +1719,7 @@ xfsm_dbus_client_call_get_id (
 gboolean
 xfsm_dbus_client_call_get_id_finish (
     XfsmDbusClient *proxy,
-    gchar **out_id,
+    gchar ** out_id,
     GAsyncResult *res,
     GError **error)
 {
@@ -1751,7 +1751,7 @@ _out:
 gboolean
 xfsm_dbus_client_call_get_id_sync (
     XfsmDbusClient *proxy,
-    gchar **out_id,
+    gchar ** out_id,
     GCancellable *cancellable,
     GError **error)
 {
@@ -1817,7 +1817,7 @@ xfsm_dbus_client_call_get_state (
 gboolean
 xfsm_dbus_client_call_get_state_finish (
     XfsmDbusClient *proxy,
-    guint *out_state,
+    guint* out_state,
     GAsyncResult *res,
     GError **error)
 {
@@ -1849,7 +1849,7 @@ _out:
 gboolean
 xfsm_dbus_client_call_get_state_sync (
     XfsmDbusClient *proxy,
-    guint *out_state,
+    guint* out_state,
     GCancellable *cancellable,
     GError **error)
 {
@@ -1915,7 +1915,7 @@ xfsm_dbus_client_call_get_all_sm_properties (
 gboolean
 xfsm_dbus_client_call_get_all_sm_properties_finish (
     XfsmDbusClient *proxy,
-    GVariant **out_properties,
+    GVariant ** out_properties,
     GAsyncResult *res,
     GError **error)
 {
@@ -1947,7 +1947,7 @@ _out:
 gboolean
 xfsm_dbus_client_call_get_all_sm_properties_sync (
     XfsmDbusClient *proxy,
-    GVariant **out_properties,
+    GVariant ** out_properties,
     GCancellable *cancellable,
     GError **error)
 {
@@ -2016,7 +2016,7 @@ xfsm_dbus_client_call_get_sm_properties (
 gboolean
 xfsm_dbus_client_call_get_sm_properties_finish (
     XfsmDbusClient *proxy,
-    GVariant **out_values,
+    GVariant ** out_values,
     GAsyncResult *res,
     GError **error)
 {
@@ -2050,7 +2050,7 @@ gboolean
 xfsm_dbus_client_call_get_sm_properties_sync (
     XfsmDbusClient *proxy,
     const gchar *const *arg_names,
-    GVariant **out_values,
+    GVariant ** out_values,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3364,8 +3364,14 @@ xfsm_dbus_client_skeleton_finalize (GObject *object)
 {
   XfsmDbusClientSkeleton *skeleton = XFSM_DBUS_CLIENT_SKELETON (object);
   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+  /* coverity[missing_lock : SUPPRESS] */
+  g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy);
+#else
   if (skeleton->priv->changed_properties_idle_source != NULL)
     g_source_destroy (skeleton->priv->changed_properties_idle_source);
+skeleton->priv->changed_properties_idle_source = NULL;
+#endif
   g_main_context_unref (skeleton->priv->context);
   g_mutex_clear (&skeleton->priv->lock);
   G_OBJECT_CLASS (xfsm_dbus_client_skeleton_parent_class)->finalize (object);


=====================================
xfce4-session/xfsm-client-dbus.h
=====================================
@@ -183,13 +183,13 @@ void xfsm_dbus_client_call_get_id (
 
 gboolean xfsm_dbus_client_call_get_id_finish (
     XfsmDbusClient *proxy,
-    gchar **out_id,
+    gchar ** out_id,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_client_call_get_id_sync (
     XfsmDbusClient *proxy,
-    gchar **out_id,
+    gchar ** out_id,
     GCancellable *cancellable,
     GError **error);
 
@@ -201,13 +201,13 @@ void xfsm_dbus_client_call_get_state (
 
 gboolean xfsm_dbus_client_call_get_state_finish (
     XfsmDbusClient *proxy,
-    guint *out_state,
+    guint* out_state,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_client_call_get_state_sync (
     XfsmDbusClient *proxy,
-    guint *out_state,
+    guint* out_state,
     GCancellable *cancellable,
     GError **error);
 
@@ -219,13 +219,13 @@ void xfsm_dbus_client_call_get_all_sm_properties (
 
 gboolean xfsm_dbus_client_call_get_all_sm_properties_finish (
     XfsmDbusClient *proxy,
-    GVariant **out_properties,
+    GVariant ** out_properties,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_client_call_get_all_sm_properties_sync (
     XfsmDbusClient *proxy,
-    GVariant **out_properties,
+    GVariant ** out_properties,
     GCancellable *cancellable,
     GError **error);
 
@@ -238,14 +238,14 @@ void xfsm_dbus_client_call_get_sm_properties (
 
 gboolean xfsm_dbus_client_call_get_sm_properties_finish (
     XfsmDbusClient *proxy,
-    GVariant **out_values,
+    GVariant ** out_values,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_client_call_get_sm_properties_sync (
     XfsmDbusClient *proxy,
     const gchar *const *arg_names,
-    GVariant **out_values,
+    GVariant ** out_values,
     GCancellable *cancellable,
     GError **error);
 


=====================================
xfce4-session/xfsm-logout-dialog.c
=====================================
@@ -727,6 +727,12 @@ xfsm_logout_dialog (const gchar *session_name,
       return TRUE;
     }
 
+  /* do not create multiple dialogs */
+  static gboolean showing_dialog = FALSE;
+  if (showing_dialog)
+    return FALSE;
+  showing_dialog = TRUE;
+
   /* decide on which screen we should show the dialog */
   screen = xfce_gdk_screen_get_active (&monitor);
   if (G_UNLIKELY (screen == NULL))
@@ -837,5 +843,6 @@ xfsm_logout_dialog (const gchar *session_name,
       g_object_unref (G_OBJECT (screenshot));
     }
 
+  showing_dialog = FALSE;
   return (result == GTK_RESPONSE_OK);
 }


=====================================
xfce4-session/xfsm-manager-dbus.c
=====================================
@@ -2515,9 +2515,9 @@ xfsm_dbus_manager_call_get_info (
 gboolean
 xfsm_dbus_manager_call_get_info_finish (
     XfsmDbusManager *proxy,
-    gchar **out_name,
-    gchar **out_version,
-    gchar **out_vendor,
+    gchar ** out_name,
+    gchar ** out_version,
+    gchar ** out_vendor,
     GAsyncResult *res,
     GError **error)
 {
@@ -2553,9 +2553,9 @@ _out:
 gboolean
 xfsm_dbus_manager_call_get_info_sync (
     XfsmDbusManager *proxy,
-    gchar **out_name,
-    gchar **out_version,
-    gchar **out_vendor,
+    gchar ** out_name,
+    gchar ** out_version,
+    gchar ** out_vendor,
     GCancellable *cancellable,
     GError **error)
 {
@@ -2623,7 +2623,7 @@ xfsm_dbus_manager_call_list_clients (
 gboolean
 xfsm_dbus_manager_call_list_clients_finish (
     XfsmDbusManager *proxy,
-    gchar ***out_clients,
+    gchar *** out_clients,
     GAsyncResult *res,
     GError **error)
 {
@@ -2655,7 +2655,7 @@ _out:
 gboolean
 xfsm_dbus_manager_call_list_clients_sync (
     XfsmDbusManager *proxy,
-    gchar ***out_clients,
+    gchar *** out_clients,
     GCancellable *cancellable,
     GError **error)
 {
@@ -2721,7 +2721,7 @@ xfsm_dbus_manager_call_get_state (
 gboolean
 xfsm_dbus_manager_call_get_state_finish (
     XfsmDbusManager *proxy,
-    guint *out_state,
+    guint* out_state,
     GAsyncResult *res,
     GError **error)
 {
@@ -2753,7 +2753,7 @@ _out:
 gboolean
 xfsm_dbus_manager_call_get_state_sync (
     XfsmDbusManager *proxy,
-    guint *out_state,
+    guint* out_state,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3119,7 +3119,7 @@ xfsm_dbus_manager_call_can_shutdown (
 gboolean
 xfsm_dbus_manager_call_can_shutdown_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_shutdown,
+    gboolean* out_can_shutdown,
     GAsyncResult *res,
     GError **error)
 {
@@ -3151,7 +3151,7 @@ _out:
 gboolean
 xfsm_dbus_manager_call_can_shutdown_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_shutdown,
+    gboolean* out_can_shutdown,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3315,7 +3315,7 @@ xfsm_dbus_manager_call_can_restart (
 gboolean
 xfsm_dbus_manager_call_can_restart_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_restart,
+    gboolean* out_can_restart,
     GAsyncResult *res,
     GError **error)
 {
@@ -3347,7 +3347,7 @@ _out:
 gboolean
 xfsm_dbus_manager_call_can_restart_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_restart,
+    gboolean* out_can_restart,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3505,7 +3505,7 @@ xfsm_dbus_manager_call_can_suspend (
 gboolean
 xfsm_dbus_manager_call_can_suspend_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_suspend,
+    gboolean* out_can_suspend,
     GAsyncResult *res,
     GError **error)
 {
@@ -3537,7 +3537,7 @@ _out:
 gboolean
 xfsm_dbus_manager_call_can_suspend_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_suspend,
+    gboolean* out_can_suspend,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3695,7 +3695,7 @@ xfsm_dbus_manager_call_can_hibernate (
 gboolean
 xfsm_dbus_manager_call_can_hibernate_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_hibernate,
+    gboolean* out_can_hibernate,
     GAsyncResult *res,
     GError **error)
 {
@@ -3727,7 +3727,7 @@ _out:
 gboolean
 xfsm_dbus_manager_call_can_hibernate_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_hibernate,
+    gboolean* out_can_hibernate,
     GCancellable *cancellable,
     GError **error)
 {
@@ -3885,7 +3885,7 @@ xfsm_dbus_manager_call_can_hybrid_sleep (
 gboolean
 xfsm_dbus_manager_call_can_hybrid_sleep_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_hybrid_sleep,
+    gboolean* out_can_hybrid_sleep,
     GAsyncResult *res,
     GError **error)
 {
@@ -3917,7 +3917,7 @@ _out:
 gboolean
 xfsm_dbus_manager_call_can_hybrid_sleep_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_hybrid_sleep,
+    gboolean* out_can_hybrid_sleep,
     GCancellable *cancellable,
     GError **error)
 {
@@ -4081,7 +4081,7 @@ xfsm_dbus_manager_call_register_client (
 gboolean
 xfsm_dbus_manager_call_register_client_finish (
     XfsmDbusManager *proxy,
-    gchar **out_client_id,
+    gchar ** out_client_id,
     GAsyncResult *res,
     GError **error)
 {
@@ -4117,7 +4117,7 @@ xfsm_dbus_manager_call_register_client_sync (
     XfsmDbusManager *proxy,
     const gchar *arg_app_id,
     const gchar *arg_client_startup_id,
-    gchar **out_client_id,
+    gchar ** out_client_id,
     GCancellable *cancellable,
     GError **error)
 {
@@ -4295,7 +4295,7 @@ xfsm_dbus_manager_call_inhibit (
 gboolean
 xfsm_dbus_manager_call_inhibit_finish (
     XfsmDbusManager *proxy,
-    guint *out_inhibit_cookie,
+    guint* out_inhibit_cookie,
     GAsyncResult *res,
     GError **error)
 {
@@ -4335,7 +4335,7 @@ xfsm_dbus_manager_call_inhibit_sync (
     guint arg_toplevel_xid,
     const gchar *arg_reason,
     guint arg_flags,
-    guint *out_inhibit_cookie,
+    guint* out_inhibit_cookie,
     GCancellable *cancellable,
     GError **error)
 {
@@ -4506,7 +4506,7 @@ xfsm_dbus_manager_call_is_inhibited (
 gboolean
 xfsm_dbus_manager_call_is_inhibited_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_is_inhibited,
+    gboolean* out_is_inhibited,
     GAsyncResult *res,
     GError **error)
 {
@@ -4540,7 +4540,7 @@ gboolean
 xfsm_dbus_manager_call_is_inhibited_sync (
     XfsmDbusManager *proxy,
     guint arg_flags,
-    gboolean *out_is_inhibited,
+    gboolean* out_is_inhibited,
     GCancellable *cancellable,
     GError **error)
 {
@@ -4607,7 +4607,7 @@ xfsm_dbus_manager_call_lock (
 gboolean
 xfsm_dbus_manager_call_lock_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_locked,
+    gboolean* out_locked,
     GAsyncResult *res,
     GError **error)
 {
@@ -4639,7 +4639,7 @@ _out:
 gboolean
 xfsm_dbus_manager_call_lock_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_locked,
+    gboolean* out_locked,
     GCancellable *cancellable,
     GError **error)
 {
@@ -5746,8 +5746,14 @@ xfsm_dbus_manager_skeleton_finalize (GObject *object)
 {
   XfsmDbusManagerSkeleton *skeleton = XFSM_DBUS_MANAGER_SKELETON (object);
   g_list_free_full (skeleton->priv->changed_properties, (GDestroyNotify) _changed_property_free);
+#if GLIB_VERSION_MAX_ALLOWED >= GLIB_VERSION_2_38
+  /* coverity[missing_lock : SUPPRESS] */
+  g_clear_pointer (&skeleton->priv->changed_properties_idle_source, g_source_destroy);
+#else
   if (skeleton->priv->changed_properties_idle_source != NULL)
     g_source_destroy (skeleton->priv->changed_properties_idle_source);
+skeleton->priv->changed_properties_idle_source = NULL;
+#endif
   g_main_context_unref (skeleton->priv->context);
   g_mutex_clear (&skeleton->priv->lock);
   G_OBJECT_CLASS (xfsm_dbus_manager_skeleton_parent_class)->finalize (object);


=====================================
xfce4-session/xfsm-manager-dbus.h
=====================================
@@ -282,17 +282,17 @@ void xfsm_dbus_manager_call_get_info (
 
 gboolean xfsm_dbus_manager_call_get_info_finish (
     XfsmDbusManager *proxy,
-    gchar **out_name,
-    gchar **out_version,
-    gchar **out_vendor,
+    gchar ** out_name,
+    gchar ** out_version,
+    gchar ** out_vendor,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_get_info_sync (
     XfsmDbusManager *proxy,
-    gchar **out_name,
-    gchar **out_version,
-    gchar **out_vendor,
+    gchar ** out_name,
+    gchar ** out_version,
+    gchar ** out_vendor,
     GCancellable *cancellable,
     GError **error);
 
@@ -304,13 +304,13 @@ void xfsm_dbus_manager_call_list_clients (
 
 gboolean xfsm_dbus_manager_call_list_clients_finish (
     XfsmDbusManager *proxy,
-    gchar ***out_clients,
+    gchar *** out_clients,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_list_clients_sync (
     XfsmDbusManager *proxy,
-    gchar ***out_clients,
+    gchar *** out_clients,
     GCancellable *cancellable,
     GError **error);
 
@@ -322,13 +322,13 @@ void xfsm_dbus_manager_call_get_state (
 
 gboolean xfsm_dbus_manager_call_get_state_finish (
     XfsmDbusManager *proxy,
-    guint *out_state,
+    guint* out_state,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_get_state_sync (
     XfsmDbusManager *proxy,
-    guint *out_state,
+    guint* out_state,
     GCancellable *cancellable,
     GError **error);
 
@@ -396,13 +396,13 @@ void xfsm_dbus_manager_call_can_shutdown (
 
 gboolean xfsm_dbus_manager_call_can_shutdown_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_shutdown,
+    gboolean* out_can_shutdown,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_can_shutdown_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_shutdown,
+    gboolean* out_can_shutdown,
     GCancellable *cancellable,
     GError **error);
 
@@ -432,13 +432,13 @@ void xfsm_dbus_manager_call_can_restart (
 
 gboolean xfsm_dbus_manager_call_can_restart_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_restart,
+    gboolean* out_can_restart,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_can_restart_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_restart,
+    gboolean* out_can_restart,
     GCancellable *cancellable,
     GError **error);
 
@@ -466,13 +466,13 @@ void xfsm_dbus_manager_call_can_suspend (
 
 gboolean xfsm_dbus_manager_call_can_suspend_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_suspend,
+    gboolean* out_can_suspend,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_can_suspend_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_suspend,
+    gboolean* out_can_suspend,
     GCancellable *cancellable,
     GError **error);
 
@@ -500,13 +500,13 @@ void xfsm_dbus_manager_call_can_hibernate (
 
 gboolean xfsm_dbus_manager_call_can_hibernate_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_hibernate,
+    gboolean* out_can_hibernate,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_can_hibernate_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_hibernate,
+    gboolean* out_can_hibernate,
     GCancellable *cancellable,
     GError **error);
 
@@ -534,13 +534,13 @@ void xfsm_dbus_manager_call_can_hybrid_sleep (
 
 gboolean xfsm_dbus_manager_call_can_hybrid_sleep_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_can_hybrid_sleep,
+    gboolean* out_can_hybrid_sleep,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_can_hybrid_sleep_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_can_hybrid_sleep,
+    gboolean* out_can_hybrid_sleep,
     GCancellable *cancellable,
     GError **error);
 
@@ -570,7 +570,7 @@ void xfsm_dbus_manager_call_register_client (
 
 gboolean xfsm_dbus_manager_call_register_client_finish (
     XfsmDbusManager *proxy,
-    gchar **out_client_id,
+    gchar ** out_client_id,
     GAsyncResult *res,
     GError **error);
 
@@ -578,7 +578,7 @@ gboolean xfsm_dbus_manager_call_register_client_sync (
     XfsmDbusManager *proxy,
     const gchar *arg_app_id,
     const gchar *arg_client_startup_id,
-    gchar **out_client_id,
+    gchar ** out_client_id,
     GCancellable *cancellable,
     GError **error);
 
@@ -612,7 +612,7 @@ void xfsm_dbus_manager_call_inhibit (
 
 gboolean xfsm_dbus_manager_call_inhibit_finish (
     XfsmDbusManager *proxy,
-    guint *out_inhibit_cookie,
+    guint* out_inhibit_cookie,
     GAsyncResult *res,
     GError **error);
 
@@ -622,7 +622,7 @@ gboolean xfsm_dbus_manager_call_inhibit_sync (
     guint arg_toplevel_xid,
     const gchar *arg_reason,
     guint arg_flags,
-    guint *out_inhibit_cookie,
+    guint* out_inhibit_cookie,
     GCancellable *cancellable,
     GError **error);
 
@@ -653,14 +653,14 @@ void xfsm_dbus_manager_call_is_inhibited (
 
 gboolean xfsm_dbus_manager_call_is_inhibited_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_is_inhibited,
+    gboolean* out_is_inhibited,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_is_inhibited_sync (
     XfsmDbusManager *proxy,
     guint arg_flags,
-    gboolean *out_is_inhibited,
+    gboolean* out_is_inhibited,
     GCancellable *cancellable,
     GError **error);
 
@@ -672,13 +672,13 @@ void xfsm_dbus_manager_call_lock (
 
 gboolean xfsm_dbus_manager_call_lock_finish (
     XfsmDbusManager *proxy,
-    gboolean *out_locked,
+    gboolean* out_locked,
     GAsyncResult *res,
     GError **error);
 
 gboolean xfsm_dbus_manager_call_lock_sync (
     XfsmDbusManager *proxy,
-    gboolean *out_locked,
+    gboolean* out_locked,
     GCancellable *cancellable,
     GError **error);
 


=====================================
xfce4-session/xfsm-manager.c
=====================================
@@ -95,6 +95,7 @@ struct _XfsmManager
 
   guint die_timeout_id;
   guint name_owner_id;
+  guint save_idle_id;
 
   GDBusConnection *connection;
   XfwScreen *xfw_screen;
@@ -214,6 +215,8 @@ xfsm_manager_finalize (GObject *obj)
 
   if (manager->die_timeout_id != 0)
     g_source_remove (manager->die_timeout_id);
+  if (manager->save_idle_id != 0)
+    g_source_remove (manager->save_idle_id);
 
   g_object_unref (manager->shutdown_helper);
 
@@ -2335,6 +2338,9 @@ xfsm_manager_dbus_checkpoint_idled (gpointer data)
 {
   XfsmManager *manager = XFSM_MANAGER (data);
 
+  /* do this first, 'manager' can be released below */
+  manager->save_idle_id = 0;
+
   xfsm_manager_save_yourself_global (manager, SmSaveBoth, FALSE,
                                      SmInteractStyleNone, FALSE,
                                      XFSM_SHUTDOWN_ASK, TRUE);
@@ -2350,7 +2356,7 @@ xfsm_manager_dbus_checkpoint (XfsmDbusManager *object,
 {
   XfsmManager *manager = XFSM_MANAGER (object);
 
-  if (manager->state != XFSM_MANAGER_IDLE)
+  if (manager->state != XFSM_MANAGER_IDLE || manager->save_idle_id != 0)
     {
       throw_error (invocation, XFSM_ERROR_BAD_STATE, _("Session manager must be in idle state when requesting a checkpoint"));
       return TRUE;
@@ -2363,7 +2369,7 @@ xfsm_manager_dbus_checkpoint (XfsmDbusManager *object,
     manager->checkpoint_session_name = NULL;
 
   /* idle so the dbus call returns in the client */
-  g_idle_add (xfsm_manager_dbus_checkpoint_idled, manager);
+  manager->save_idle_id = g_idle_add (xfsm_manager_dbus_checkpoint_idled, manager);
 
   xfsm_dbus_manager_complete_checkpoint (object, invocation);
   return TRUE;
@@ -2375,6 +2381,9 @@ xfsm_manager_dbus_shutdown_idled (gpointer data)
 {
   ShutdownIdleData *idata = data;
 
+  /* do this first, 'manager' can be released below */
+  idata->manager->save_idle_id = 0;
+
   xfsm_manager_save_yourself_global (idata->manager, SmSaveBoth, TRUE,
                                      SmInteractStyleAny, FALSE,
                                      idata->type, idata->allow_save);
@@ -2390,7 +2399,7 @@ xfsm_manager_save_yourself_dbus (XfsmManager *manager,
 {
   ShutdownIdleData *idata;
 
-  if (manager->state != XFSM_MANAGER_IDLE)
+  if (manager->state != XFSM_MANAGER_IDLE || manager->save_idle_id != 0)
     {
       return FALSE;
     }
@@ -2399,8 +2408,8 @@ xfsm_manager_save_yourself_dbus (XfsmManager *manager,
   idata->manager = manager;
   idata->type = type;
   idata->allow_save = allow_save;
-  g_idle_add_full (G_PRIORITY_DEFAULT, xfsm_manager_dbus_shutdown_idled,
-                   idata, (GDestroyNotify) g_free);
+  manager->save_idle_id = g_idle_add_full (G_PRIORITY_DEFAULT, xfsm_manager_dbus_shutdown_idled,
+                                           idata, (GDestroyNotify) g_free);
 
   return TRUE;
 }



View it on GitLab: https://salsa.debian.org/xfce-team/desktop/xfce4-session/-/compare/04150fa6f701b8cedaf128424680f0624dbf77d1...a6a61053c9597b93e09900881146ea0e4e160900

-- 
View it on GitLab: https://salsa.debian.org/xfce-team/desktop/xfce4-session/-/compare/04150fa6f701b8cedaf128424680f0624dbf77d1...a6a61053c9597b93e09900881146ea0e4e160900
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-xfce-commits/attachments/20260307/5b56637d/attachment-0001.htm>


More information about the Pkg-xfce-commits mailing list