* [Buildroot] [PATCH 1/1] taskd: support linking against static gnutls and uuid @ 2016-06-17 2:08 Ben Boeckel 2016-06-17 3:22 ` Baruch Siach 2016-06-22 2:19 ` [Buildroot] [PATCH v2 " Ben Boeckel 0 siblings, 2 replies; 7+ messages in thread From: Ben Boeckel @ 2016-06-17 2:08 UTC (permalink / raw) To: buildroot The FindGnuTLS module shipped with CMake does not expose the information required for proper linking if it is a static library. Similarly, the code which searches for the uuid library is insufficient for such a task. Also, find_package(Threads) was missing, so pthreads was not properly linked. Do not send this patch to taskwarrior upstream; it is not a proper fix. Fixes: http://autobuild.buildroot.net/results/67f574af0cc4348ffe2bce026c44766e49c29124/ Signed-off-by: Ben Boeckel <mathstuf@gmail.com> --- ...ix-linking-against-deps-statically-on-arc.patch | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 package/taskd/0001-buildroot-fix-linking-against-deps-statically-on-arc.patch diff --git a/package/taskd/0001-buildroot-fix-linking-against-deps-statically-on-arc.patch b/package/taskd/0001-buildroot-fix-linking-against-deps-statically-on-arc.patch new file mode 100644 index 0000000..56f9dfc --- /dev/null +++ b/package/taskd/0001-buildroot-fix-linking-against-deps-statically-on-arc.patch @@ -0,0 +1,52 @@ +From b916016eaf3a3bdb555de11610c0b7964d52da96 Mon Sep 17 00:00:00 2001 +From: Ben Boeckel <mathstuf@gmail.com> +Date: Thu, 16 Jun 2016 21:58:47 -0400 +Subject: [PATCH] buildroot: fix linking against deps statically on arc + +Also find the Threads package so that CMAKE_THREAD_LIBS_INIT is actually +set. + +Explicitly not signing this off because it should not go to taskwarrior +upstream; deeper fixes are required. +--- + CMakeLists.txt | 4 ++-- + src/CMakeLists.txt | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9a049b0..09f3209 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -49,7 +49,7 @@ find_package (GnuTLS REQUIRED) + if (GNUTLS_FOUND) + set (HAVE_LIBGNUTLS true) + set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIR}) +- set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${GNUTLS_LIBRARIES}) ++ set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${PC_GNUTLS_STATIC_LIBRARIES}) + endif (GNUTLS_FOUND) + + check_function_exists (timegm HAVE_TIMEGM) +@@ -68,7 +68,7 @@ else (DARWIN OR FREEBSD OR OPENBSD) + find_library (UUID_LIBRARY NAMES uuid) + if (UUID_INCLUDE_DIR AND UUID_LIBRARY) + set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${UUID_INCLUDE_DIR}) +- set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${UUID_LIBRARY}) ++ set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${UUID_LIBRARY} -lintl) + # Look for uuid_unparse_lower + set (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${UUID_INCLUDE_DIR}) + set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${UUID_LIBRARY}) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 5820392..243b0f9 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -35,6 +35,7 @@ add_library (taskd admin.cpp + util.cpp util.h + wcwidth6.cpp) + ++find_package(Threads REQUIRED) + add_executable (taskd_executable taskd.cpp) + target_link_libraries (taskd_executable taskd ${TASKD_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) + set_property (TARGET taskd_executable PROPERTY OUTPUT_NAME "taskd") +-- +2.9.0 + -- 2.9.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/1] taskd: support linking against static gnutls and uuid 2016-06-17 2:08 [Buildroot] [PATCH 1/1] taskd: support linking against static gnutls and uuid Ben Boeckel @ 2016-06-17 3:22 ` Baruch Siach 2016-06-17 4:24 ` Ben Boeckel 2016-06-22 2:19 ` [Buildroot] [PATCH v2 " Ben Boeckel 1 sibling, 1 reply; 7+ messages in thread From: Baruch Siach @ 2016-06-17 3:22 UTC (permalink / raw) To: buildroot Hi Ben, On Thu, Jun 16, 2016 at 10:08:36PM -0400, Ben Boeckel wrote: > The FindGnuTLS module shipped with CMake does not expose the information > required for proper linking if it is a static library. > > Similarly, the code which searches for the uuid library is insufficient > for such a task. > > Also, find_package(Threads) was missing, so pthreads was not properly > linked. > > Do not send this patch to taskwarrior upstream; it is not a proper fix. > > Fixes: > http://autobuild.buildroot.net/results/67f574af0cc4348ffe2bce026c44766e49c29124/ > Signed-off-by: Ben Boeckel <mathstuf@gmail.com> > --- > ...ix-linking-against-deps-statically-on-arc.patch | 52 ++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > create mode 100644 package/taskd/0001-buildroot-fix-linking-against-deps-statically-on-arc.patch > > diff --git a/package/taskd/0001-buildroot-fix-linking-against-deps-statically-on-arc.patch b/package/taskd/0001-buildroot-fix-linking-against-deps-statically-on-arc.patch > new file mode 100644 > index 0000000..56f9dfc > --- /dev/null > +++ b/package/taskd/0001-buildroot-fix-linking-against-deps-statically-on-arc.patch > @@ -0,0 +1,52 @@ > +From b916016eaf3a3bdb555de11610c0b7964d52da96 Mon Sep 17 00:00:00 2001 > +From: Ben Boeckel <mathstuf@gmail.com> > +Date: Thu, 16 Jun 2016 21:58:47 -0400 > +Subject: [PATCH] buildroot: fix linking against deps statically on arc > + > +Also find the Threads package so that CMAKE_THREAD_LIBS_INIT is actually > +set. > + > +Explicitly not signing this off because it should not go to taskwarrior > +upstream; deeper fixes are required. But you do need to sign-off if you want Buildroot to apply this patch. baruch -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il - ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/1] taskd: support linking against static gnutls and uuid 2016-06-17 3:22 ` Baruch Siach @ 2016-06-17 4:24 ` Ben Boeckel 2016-06-17 4:32 ` Baruch Siach 0 siblings, 1 reply; 7+ messages in thread From: Ben Boeckel @ 2016-06-17 4:24 UTC (permalink / raw) To: buildroot On Fri, Jun 17, 2016 at 06:22:30 +0300, Baruch Siach wrote: > But you do need to sign-off if you want Buildroot to apply this patch. Is the signoff on the buildroot-level patch not sufficient? The patch in question here does not modify buildroot code, but taskwarrior code. I'm not saying "no"; I just find it a bit odd. --Ben ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/1] taskd: support linking against static gnutls and uuid 2016-06-17 4:24 ` Ben Boeckel @ 2016-06-17 4:32 ` Baruch Siach 0 siblings, 0 replies; 7+ messages in thread From: Baruch Siach @ 2016-06-17 4:32 UTC (permalink / raw) To: buildroot Hi Ben, On Fri, Jun 17, 2016 at 12:24:18AM -0400, Ben Boeckel wrote: > On Fri, Jun 17, 2016 at 06:22:30 +0300, Baruch Siach wrote: > > But you do need to sign-off if you want Buildroot to apply this patch. > > Is the signoff on the buildroot-level patch not sufficient? The patch in > question here does not modify buildroot code, but taskwarrior code. Yes. See http://nightly.buildroot.org/manual.html#_format_and_licensing_of_the_package_patches. baruch -- http://baruch.siach.name/blog/ ~. .~ Tk Open Systems =}------------------------------------------------ooO--U--Ooo------------{= - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il - ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH v2 1/1] taskd: support linking against static gnutls and uuid 2016-06-17 2:08 [Buildroot] [PATCH 1/1] taskd: support linking against static gnutls and uuid Ben Boeckel 2016-06-17 3:22 ` Baruch Siach @ 2016-06-22 2:19 ` Ben Boeckel 2016-07-03 16:51 ` Samuel Martin 1 sibling, 1 reply; 7+ messages in thread From: Ben Boeckel @ 2016-06-22 2:19 UTC (permalink / raw) To: buildroot The FindGnuTLS module shipped with CMake does not expose the information required for proper linking if it is a static library. Similarly, the code which searches for the uuid library is insufficient for such a task. Also, find_package(Threads) was missing, so pthreads was not properly linked. Do not send this patch to taskwarrior upstream; it is not a proper fix. Fixes: http://autobuild.buildroot.net/results/67f574af0cc4348ffe2bce026c44766e49c29124/ Signed-off-by: Ben Boeckel <mathstuf@gmail.com> --- Changes v1 -> v2: - renamed patch to be 0002- for unambiguous application order - added SoB to taskd patch (with admonition that it is a hack) (via Baruch) --- ...ix-linking-against-deps-statically-on-arc.patch | 53 ++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 package/taskd/0002-buildroot-fix-linking-against-deps-statically-on-arc.patch diff --git a/package/taskd/0002-buildroot-fix-linking-against-deps-statically-on-arc.patch b/package/taskd/0002-buildroot-fix-linking-against-deps-statically-on-arc.patch new file mode 100644 index 0000000..6983f37 --- /dev/null +++ b/package/taskd/0002-buildroot-fix-linking-against-deps-statically-on-arc.patch @@ -0,0 +1,53 @@ +From b916016eaf3a3bdb555de11610c0b7964d52da96 Mon Sep 17 00:00:00 2001 +From: Ben Boeckel <mathstuf@gmail.com> +Date: Thu, 16 Jun 2016 21:58:47 -0400 +Subject: [PATCH] buildroot: fix linking against deps statically on arc + +Also find the Threads package so that CMAKE_THREAD_LIBS_INIT is actually +set. + +Do not send upstream; it is a hack. + +Signed-off-by:: Ben Boeckel <mathstuf@gmail.com> +--- + CMakeLists.txt | 4 ++-- + src/CMakeLists.txt | 1 + + 2 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9a049b0..09f3209 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -49,7 +49,7 @@ find_package (GnuTLS REQUIRED) + if (GNUTLS_FOUND) + set (HAVE_LIBGNUTLS true) + set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIR}) +- set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${GNUTLS_LIBRARIES}) ++ set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${PC_GNUTLS_STATIC_LIBRARIES}) + endif (GNUTLS_FOUND) + + check_function_exists (timegm HAVE_TIMEGM) +@@ -68,7 +68,7 @@ else (DARWIN OR FREEBSD OR OPENBSD) + find_library (UUID_LIBRARY NAMES uuid) + if (UUID_INCLUDE_DIR AND UUID_LIBRARY) + set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${UUID_INCLUDE_DIR}) +- set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${UUID_LIBRARY}) ++ set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${UUID_LIBRARY} -lintl) + # Look for uuid_unparse_lower + set (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${UUID_INCLUDE_DIR}) + set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${UUID_LIBRARY}) +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt +index 5820392..243b0f9 100644 +--- a/src/CMakeLists.txt ++++ b/src/CMakeLists.txt +@@ -35,6 +35,7 @@ add_library (taskd admin.cpp + util.cpp util.h + wcwidth6.cpp) + ++find_package(Threads REQUIRED) + add_executable (taskd_executable taskd.cpp) + target_link_libraries (taskd_executable taskd ${TASKD_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) + set_property (TARGET taskd_executable PROPERTY OUTPUT_NAME "taskd") +-- +2.9.0 + -- 2.9.0 ^ permalink raw reply related [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH v2 1/1] taskd: support linking against static gnutls and uuid 2016-06-22 2:19 ` [Buildroot] [PATCH v2 " Ben Boeckel @ 2016-07-03 16:51 ` Samuel Martin 2016-08-05 3:17 ` Ben Boeckel 0 siblings, 1 reply; 7+ messages in thread From: Samuel Martin @ 2016-07-03 16:51 UTC (permalink / raw) To: buildroot Hi Ben, all, On Wed, Jun 22, 2016 at 4:19 AM, Ben Boeckel <mathstuf@gmail.com> wrote: > The FindGnuTLS module shipped with CMake does not expose the information > required for proper linking if it is a static library. > > Similarly, the code which searches for the uuid library is insufficient > for such a task. > > Also, find_package(Threads) was missing, so pthreads was not properly > linked. > > Do not send this patch to taskwarrior upstream; it is not a proper fix. > I would have done 2 distinct patches, one for pthread since it may be not-static-build specific (though it could be triggered more easily on static-build), and a second one fixing the missing dependencies for gnutls and uuid in case of static-build. > Fixes: > http://autobuild.buildroot.net/results/67f574af0cc4348ffe2bce026c44766e49c29124/ > > Signed-off-by: Ben Boeckel <mathstuf@gmail.com> > --- > Changes v1 -> v2: > - renamed patch to be 0002- for unambiguous application order > - added SoB to taskd patch (with admonition that it is a hack) (via Baruch) > --- > ...ix-linking-against-deps-statically-on-arc.patch | 53 ++++++++++++++++++++++ > 1 file changed, 53 insertions(+) > create mode 100644 package/taskd/0002-buildroot-fix-linking-against-deps-statically-on-arc.patch > > diff --git a/package/taskd/0002-buildroot-fix-linking-against-deps-statically-on-arc.patch b/package/taskd/0002-buildroot-fix-linking-against-deps-statically-on-arc.patch > new file mode 100644 > index 0000000..6983f37 > --- /dev/null > +++ b/package/taskd/0002-buildroot-fix-linking-against-deps-statically-on-arc.patch > @@ -0,0 +1,53 @@ > +From b916016eaf3a3bdb555de11610c0b7964d52da96 Mon Sep 17 00:00:00 2001 > +From: Ben Boeckel <mathstuf@gmail.com> > +Date: Thu, 16 Jun 2016 21:58:47 -0400 > +Subject: [PATCH] buildroot: fix linking against deps statically on arc > + > +Also find the Threads package so that CMAKE_THREAD_LIBS_INIT is actually > +set. > + > +Do not send upstream; it is a hack. > + > +Signed-off-by:: Ben Boeckel <mathstuf@gmail.com> > +--- > + CMakeLists.txt | 4 ++-- > + src/CMakeLists.txt | 1 + > + 2 files changed, 3 insertions(+), 2 deletions(-) > + > +diff --git a/CMakeLists.txt b/CMakeLists.txt > +index 9a049b0..09f3209 100644 > +--- a/CMakeLists.txt > ++++ b/CMakeLists.txt > +@@ -49,7 +49,7 @@ find_package (GnuTLS REQUIRED) > + if (GNUTLS_FOUND) > + set (HAVE_LIBGNUTLS true) > + set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${GNUTLS_INCLUDE_DIR}) > +- set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${GNUTLS_LIBRARIES}) > ++ set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${PC_GNUTLS_STATIC_LIBRARIES}) This fortunately works because FindGnuTLS.cmake provided by CMake use pkg_check_modules on non-windows platform to find GNU-TLS [1], but this is a bit... hackish. A cleaner way would be to explicitly (re-)call pkg_check_modules in this if-block. > + endif (GNUTLS_FOUND) > + > + check_function_exists (timegm HAVE_TIMEGM) > +@@ -68,7 +68,7 @@ else (DARWIN OR FREEBSD OR OPENBSD) > + find_library (UUID_LIBRARY NAMES uuid) > + if (UUID_INCLUDE_DIR AND UUID_LIBRARY) > + set (TASKD_INCLUDE_DIRS ${TASKD_INCLUDE_DIRS} ${UUID_INCLUDE_DIR}) > +- set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${UUID_LIBRARY}) > ++ set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${UUID_LIBRARY} -lintl) Here, I think the right fix would be using pkg_check_modules for uuid, then use the _STATIC_LIBRARIES variable to fill TASKD_LIBRARIES. > + # Look for uuid_unparse_lower > + set (CMAKE_REQUIRED_INCLUDES ${CMAKE_REQUIRED_INCLUDES} ${UUID_INCLUDE_DIR}) > + set (CMAKE_REQUIRED_LIBRARIES ${CMAKE_REQUIRED_LIBRARIES} ${UUID_LIBRARY}) > +diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt > +index 5820392..243b0f9 100644 > +--- a/src/CMakeLists.txt > ++++ b/src/CMakeLists.txt > +@@ -35,6 +35,7 @@ add_library (taskd admin.cpp > + util.cpp util.h > + wcwidth6.cpp) > + > ++find_package(Threads REQUIRED) It seems taskd can not depend on threads [2,3]. So, if Threads is actually mandatory, I'd prefer the REQUIRED flag to be added to [2], otherwise figure out exactly what happens (check with upstream). > + add_executable (taskd_executable taskd.cpp) > + target_link_libraries (taskd_executable taskd ${TASKD_LIBRARIES} ${CMAKE_THREAD_LIBS_INIT}) > + set_property (TARGET taskd_executable PROPERTY OUTPUT_NAME "taskd") > +-- > +2.9.0 > + > -- > 2.9.0 > [1] https://github.com/Kitware/CMake/blob/master/Modules/FindGnuTLS.cmake#L42 [2] https://github.com/taskwarrior/taskd/blob/s1.1.0/CMakeLists.txt#L62 [3] https://github.com/taskwarrior/taskd/blob/s1.1.0/src/Thread.h#L31 Regards, -- Samuel ^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH v2 1/1] taskd: support linking against static gnutls and uuid 2016-07-03 16:51 ` Samuel Martin @ 2016-08-05 3:17 ` Ben Boeckel 0 siblings, 0 replies; 7+ messages in thread From: Ben Boeckel @ 2016-08-05 3:17 UTC (permalink / raw) To: buildroot [ So it seems that my original message never made it to the list; not sure why. Resending. ] On Sun, Jul 03, 2016 at 18:51:18 +0200, Samuel Martin wrote: > I would have done 2 distinct patches, one for pthread since it may be > not-static-build specific (though it could be triggered more easily on > static-build), and a second one fixing the missing dependencies for > gnutls and uuid in case of static-build. See below. > > +- set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${GNUTLS_LIBRARIES}) > > ++ set (TASKD_LIBRARIES ${TASKD_LIBRARIES} ${PC_GNUTLS_STATIC_LIBRARIES}) > This fortunately works because FindGnuTLS.cmake provided by CMake use > pkg_check_modules on non-windows platform to find GNU-TLS [1], but > this is a bit... hackish. Acknowledged :) . > A cleaner way would be to explicitly (re-)call pkg_check_modules in > this if-block. I need to fix FindGnuTLS upstream (on my list, but not high on it :/ ). There's further problems that even with the pkg_check_modules call, it still won't be fully correct due to full paths in the --libs output: https://gitlab.kitware.com/cmake/cmake/issues/16154 FindGnuTLS then needs to tell whether the found library is static or not and set GNUTLS_LIBRARIES using the right variable. I also have a task here to write a proper FindUUID for taskd (and I suppose the rest of their suite) to use. > [2] https://github.com/taskwarrior/taskd/blob/s1.1.0/CMakeLists.txt#L62 > [3] https://github.com/taskwarrior/taskd/blob/s1.1.0/src/Thread.h#L31 This code has changed in 1.2.0 and is actually gone. I think the threads missing might actually be fallout from gnutls' use of a full pthread path from pkg-config (which CMake misses due to the issue linked above). --Ben ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2016-08-05 3:17 UTC | newest] Thread overview: 7+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2016-06-17 2:08 [Buildroot] [PATCH 1/1] taskd: support linking against static gnutls and uuid Ben Boeckel 2016-06-17 3:22 ` Baruch Siach 2016-06-17 4:24 ` Ben Boeckel 2016-06-17 4:32 ` Baruch Siach 2016-06-22 2:19 ` [Buildroot] [PATCH v2 " Ben Boeckel 2016-07-03 16:51 ` Samuel Martin 2016-08-05 3:17 ` Ben Boeckel
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox