This is an automated email from the git hooks/post-receive script. x2go pushed a change to branch bugfix/libXcomp-pthread-underlinking in repository nx-libs. at d1fe6a6 nxproxy/{m4,configure.ac,src/Makefile.am}: drop pthread overlinking. This branch includes the following new commits: new 1b6da59 nxcomp/src/Makefile.am: PTHREAD_LDFLAGS does not exist, replace with PTHREAD_LIBS. new 2efaa42 m4/: update external macros from autoconf-archive. new 95f8cf7 m4/ax_pthread.m4: implement workaround for libtool bug #13550. new d1fe6a6 nxproxy/{m4,configure.ac,src/Makefile.am}: drop pthread overlinking. The 4 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch bugfix/libXcomp-pthread-underlinking in repository nx-libs. commit 2efaa423bdfb8067897028854a5c56086d3843fc Author: Mihai Moldovan <ionic@ionic.de> Date: Mon Apr 1 09:16:43 2019 +0200 m4/: update external macros from autoconf-archive. --- m4/ax_cxx_compile_stdcxx.m4 | 45 +++++++-------------------------------------- m4/ax_pthread.m4 | 5 +++-- 2 files changed, 10 insertions(+), 40 deletions(-) diff --git a/m4/ax_cxx_compile_stdcxx.m4 b/m4/ax_cxx_compile_stdcxx.m4 index 5032bba..43087b2 100644 --- a/m4/ax_cxx_compile_stdcxx.m4 +++ b/m4/ax_cxx_compile_stdcxx.m4 @@ -33,19 +33,19 @@ # Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov <sokolov@google.com> # Copyright (c) 2015 Paul Norman <penorman@mac.com> # Copyright (c) 2015 Moritz Klammler <moritz@klammler.eu> -# Copyright (c) 2016 Krzesimir Nowak <qdlacz@gmail.com> +# Copyright (c) 2016, 2018 Krzesimir Nowak <qdlacz@gmail.com> +# Copyright (c) 2019 Enji Cooper <yaneurabeya@gmail.com> # # Copying and distribution of this file, with or without modification, are # permitted in any medium without royalty provided the copyright notice # and this notice are preserved. This file is offered as-is, without any # warranty. -#serial 7 +#serial 11 dnl This macro is based on the code from the AX_CXX_COMPILE_STDCXX_11 macro dnl (serial version number 13). -AX_REQUIRE_DEFINED([AC_MSG_WARN]) AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl m4_if([$1], [11], [ax_cxx_compile_alternatives="11 0x"], [$1], [14], [ax_cxx_compile_alternatives="14 1y"], @@ -61,14 +61,6 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl [m4_fatal([invalid third argument `$3' to AX_CXX_COMPILE_STDCXX])]) AC_LANG_PUSH([C++])dnl ac_success=no - AC_CACHE_CHECK(whether $CXX supports C++$1 features by default, - ax_cv_cxx_compile_cxx$1, - [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_testbody_$1])], - [ax_cv_cxx_compile_cxx$1=yes], - [ax_cv_cxx_compile_cxx$1=no])]) - if test x$ax_cv_cxx_compile_cxx$1 = xyes; then - ac_success=yes - fi m4_if([$2], [noext], [], [dnl if test x$ac_success = xno; then @@ -139,7 +131,6 @@ AC_DEFUN([AX_CXX_COMPILE_STDCXX], [dnl [define if the compiler supports basic C++$1 syntax]) fi AC_SUBST(HAVE_CXX$1) - m4_if([$1], [17], [AC_MSG_WARN([C++17 is not yet standardized, so the checks may change in incompatible ways anytime])]) ]) @@ -199,11 +190,13 @@ namespace cxx11 struct Base { + virtual ~Base() {} virtual void f() {} }; struct Derived : public Base { + virtual ~Derived() override {} virtual void f() override {} }; @@ -587,20 +580,12 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ #error "This is not a C++ compiler" -#elif __cplusplus <= 201402L +#elif __cplusplus < 201703L #error "This is not a C++17 compiler" #else -#if defined(__clang__) - #define REALLY_CLANG -#else - #if defined(__GNUC__) - #define REALLY_GCC - #endif -#endif - #include <initializer_list> #include <utility> #include <type_traits> @@ -608,16 +593,12 @@ m4_define([_AX_CXX_COMPILE_STDCXX_testbody_new_in_17], [[ namespace cxx17 { -#if !defined(REALLY_CLANG) namespace test_constexpr_lambdas { - // TODO: test it with clang++ from git - constexpr int foo = [](){return 42;}(); } -#endif // !defined(REALLY_CLANG) namespace test::nested_namespace::definitions { @@ -852,12 +833,9 @@ namespace cxx17 } -#if !defined(REALLY_CLANG) namespace test_template_argument_deduction_for_class_templates { - // TODO: test it with clang++ from git - template <typename T1, typename T2> struct pair { @@ -876,7 +854,6 @@ namespace cxx17 } } -#endif // !defined(REALLY_CLANG) namespace test_non_type_auto_template_parameters { @@ -890,12 +867,9 @@ namespace cxx17 } -#if !defined(REALLY_CLANG) namespace test_structured_bindings { - // TODO: test it with clang++ from git - int arr[2] = { 1, 2 }; std::pair<int, int> pr = { 1, 2 }; @@ -927,14 +901,10 @@ namespace cxx17 const auto [ x3, y3 ] = f3(); } -#endif // !defined(REALLY_CLANG) -#if !defined(REALLY_CLANG) namespace test_exception_spec_type_system { - // TODO: test it with clang++ from git - struct Good {}; struct Bad {}; @@ -952,7 +922,6 @@ namespace cxx17 static_assert (std::is_same_v<Good, decltype(f(g1, g2))>); } -#endif // !defined(REALLY_CLANG) namespace test_inline_variables { @@ -977,6 +946,6 @@ namespace cxx17 } // namespace cxx17 -#endif // __cplusplus <= 201402L +#endif // __cplusplus < 201703L ]]) diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 index 5fbf9fe..4920e07 100644 --- a/m4/ax_pthread.m4 +++ b/m4/ax_pthread.m4 @@ -82,7 +82,7 @@ # modified version of the Autoconf Macro, you may extend this special # exception to the GPL to apply to your modified version as well. -#serial 24 +#serial 25 AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) AC_DEFUN([AX_PTHREAD], [ @@ -438,7 +438,8 @@ if test "x$ax_pthread_ok" = "xyes"; then AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], [ax_cv_PTHREAD_PRIO_INHERIT], [AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include <pthread.h>]], - [[int i = PTHREAD_PRIO_INHERIT;]])], + [[int i = PTHREAD_PRIO_INHERIT; + return i;]])], [ax_cv_PTHREAD_PRIO_INHERIT=yes], [ax_cv_PTHREAD_PRIO_INHERIT=no]) ]) -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch bugfix/libXcomp-pthread-underlinking in repository nx-libs. commit 1b6da5992dd983a8526e91cd93dd98c01a81aa5b Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Apr 4 11:18:35 2019 +0200 nxcomp/src/Makefile.am: PTHREAD_LDFLAGS does not exist, replace with PTHREAD_LIBS. --- nxcomp/src/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nxcomp/src/Makefile.am b/nxcomp/src/Makefile.am index 682ddba..9cecae8 100644 --- a/nxcomp/src/Makefile.am +++ b/nxcomp/src/Makefile.am @@ -139,7 +139,7 @@ AM_CPPFLAGS = \ libXcomp_la_LDFLAGS = \ -version-number @LT_COMP_VERSION@ \ -no-undefined \ - $(PTHREAD_LDFLAGS) \ + @PTHREAD_LIBS@ \ $(NULL) libXcompincludedir = $(includedir)/nx -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch bugfix/libXcomp-pthread-underlinking in repository nx-libs. commit 95f8cf7ea0a169b47c84be29d0db3a40d1a86d86 Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Apr 4 11:06:05 2019 +0200 m4/ax_pthread.m4: implement workaround for libtool bug #13550. Find the first available pthread library and use it together with the -pthread flag if the C compiler is set to GCC. Fixes: ArcticaProject/nx-libs#756 --- m4/ax_pthread.m4 | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/m4/ax_pthread.m4 b/m4/ax_pthread.m4 index 4920e07..07a9cd2 100644 --- a/m4/ax_pthread.m4 +++ b/m4/ax_pthread.m4 @@ -83,6 +83,7 @@ # exception to the GPL to apply to your modified version as well. #serial 25 +#arctica-serial 1 AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) AC_DEFUN([AX_PTHREAD], [ @@ -334,6 +335,42 @@ for ax_pthread_try_flag in $ax_pthread_flags; do PTHREAD_LIBS="-lpthread" ;; + -pthread) + AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) + PTHREAD_CFLAGS="$ax_pthread_try_flag" + + if test "x$GCC" = "xyes"; then + # Thanks to libtool bug #13550, we have to consider the possibility + # that -nostdlib will be used during compilation at some point. + # Try to determine the first pthread library available, + # ignoring any other variants. + for ax_pthread_try_lib_flag in $ax_pthread_flags; do + case $ax_pthread_try_lib_flag in + none|-*|pthread-config) + continue + ;; + + *) + PTHREAD_LIBS="-l$ax_pthread_try_lib_flag" + + ax_pthread_save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + + # We only need to link a trivial program with + # the current library value. + # Linking should fail if the library doesn't + # exist, otherwise we should be good to go. + AC_LINK_IFELSE([AC_LANG_PROGRAM([], [])], + [LIBS="$ax_pthread_save_LIBS" + break], + [LIBS="$ax_pthread_save_LIBS" + PTHREAD_LIBS=""]) + ;; + esac + done + fi + ;; + -*) AC_MSG_CHECKING([whether pthreads work with $ax_pthread_try_flag]) PTHREAD_CFLAGS="$ax_pthread_try_flag" -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git
This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch bugfix/libXcomp-pthread-underlinking in repository nx-libs. commit d1fe6a6016efbb4f487dcac2f91194e58597ee3b Author: Mihai Moldovan <ionic@ionic.de> Date: Thu Apr 4 11:15:22 2019 +0200 nxproxy/{m4,configure.ac,src/Makefile.am}: drop pthread overlinking. Should be fixed by correctly building libXcomp. See: ArcticaProject/nx-libs#756 --- nxproxy/configure.ac | 11 ----------- nxproxy/m4/ax_pthread.m4 | 1 - nxproxy/src/Makefile.am | 3 --- 3 files changed, 15 deletions(-) diff --git a/nxproxy/configure.ac b/nxproxy/configure.ac index 6a0a41c..2ca64f6 100644 --- a/nxproxy/configure.ac +++ b/nxproxy/configure.ac @@ -28,17 +28,6 @@ NX_DEFAULT_OPTIONS NX_TARGET_USE_ELF -dnl This is a workaround for a nasty libtool bug. -dnl We actually compile libXcomp with pthread support, but libtool uses g++ ... -nostdlib ... -pthread -dnl on Linux. -nostdlib causes -pthread to be ignored. -dnl According to GCC upstream, this is not a bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=25460 -dnl GCC upstream insists that libtool needs to handle -pthread in a special way when using -nostdlib. -dnl A patch has been submitted to the libtool project: http://lists.gnu.org/archive/html/libtool-patches/2013-11/msg00015.html -dnl but never applied to the code base. Boo. -dnl We will work around this bug by using AX_PTHREAD and linking with pthread support in all consumers of -dnl libXcomp for now. -AX_PTHREAD([], AC_MSG_ERROR([no POSIX threads support detected])) - AC_CONFIG_FILES([ Makefile man/Makefile diff --git a/nxproxy/m4/ax_pthread.m4 b/nxproxy/m4/ax_pthread.m4 deleted file mode 120000 index 156af3d..0000000 --- a/nxproxy/m4/ax_pthread.m4 +++ /dev/null @@ -1 +0,0 @@ -../../m4/ax_pthread.m4 \ No newline at end of file diff --git a/nxproxy/src/Makefile.am b/nxproxy/src/Makefile.am index fbe52cb..20ec702 100644 --- a/nxproxy/src/Makefile.am +++ b/nxproxy/src/Makefile.am @@ -9,12 +9,10 @@ nxproxy_SOURCES = \ $(NULL) nxproxy_LDADD = \ - @PTHREAD_LIBS@ \ -L$(top_srcdir)/../nxcomp/src/.libs -lXcomp \ $(NULL) nxproxy_LDFLAGS = \ - $(PTHREAD_LDFLAGS) \ $(NULL) if TARGET_ELF @@ -25,7 +23,6 @@ endif TARGET_ELF nxproxy_CFLAGS = \ $(BASE_CFLAGS) \ - $(PTHREAD_CFLAGS) \ $(NULL) AM_CPPFLAGS = \ -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/nx-libs.git