All of lore.kernel.org
 help / color / mirror / Atom feed
* [Buildroot] [PATCH 1/2] libffi: make thread support optional
@ 2014-09-14  7:00 Jérôme Pouiller
  2014-09-14  7:00 ` [Buildroot] [PATCH 2/2] Revert "libffi and python: need threads support" Jérôme Pouiller
  2014-09-14 21:46 ` [Buildroot] [PATCH 1/2] libffi: make thread support optional Peter Korsgaard
  0 siblings, 2 replies; 3+ messages in thread
From: Jérôme Pouiller @ 2014-09-14  7:00 UTC (permalink / raw)
  To: buildroot

From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>

Fixes:

  http://autobuild.buildroot.org/results/7ee57d01917ea72d1811469e482513dda2ceb1ea/build-end.log

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Signed-off-by: J?r?me Pouiller <jezz@sysmic.org>
---

This patch was alread sent here:
  http://lists.busybox.net/pipermail/buildroot/2012-November/061976.html

It is a better solution than simply disable libffi (and all its dependencies).

However, there is still an unanswered question: Why autobuilders did not detect
this problem before?

 ...ffi-0003-Make-thread-support-conditionnal.patch | 73 ++++++++++++++++++++++
 1 file changed, 73 insertions(+)
 create mode 100644 package/libffi/libffi-0003-Make-thread-support-conditionnal.patch

diff --git a/package/libffi/libffi-0003-Make-thread-support-conditionnal.patch b/package/libffi/libffi-0003-Make-thread-support-conditionnal.patch
new file mode 100644
index 0000000..90d98d6
--- /dev/null
+++ b/package/libffi/libffi-0003-Make-thread-support-conditionnal.patch
@@ -0,0 +1,73 @@
+From a7f6342120060564a829704cceb843e53e0b34a9 Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+Date: Sat, 17 Nov 2012 18:44:16 +0100
+Subject: [PATCH 3/3] Make thread support conditionnal
+
+When libffi is linked against a C library that does not have thread
+support, it is not necessary to use a mutex to protect global
+variables, since the application calling libffi cannot be
+multi-threaded.
+
+Therefore, make the libffi thread support conditionnal: when we're
+building against uClibc with no thread support, don't use the
+pthread_mutex.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
+---
+ src/closures.c |   12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/src/closures.c b/src/closures.c
+index 1b37827..3d151f6 100644
+--- a/src/closures.c
++++ b/src/closures.c
+@@ -70,7 +70,10 @@
+ 
+ # elif FFI_MMAP_EXEC_WRIT /* !FFI_EXEC_TRAMPOLINE_TABLE */
+ 
++#if defined(__UCLIBC__) && !defined(__HAS_NO_THREADS__)
+ #define USE_LOCKS 1
++#endif
++
+ #define USE_DL_PREFIX 1
+ #ifdef __GNUC__
+ #ifndef USE_BUILTIN_FFS
+@@ -116,7 +119,10 @@
+ #include <mntent.h>
+ #endif /* HAVE_MNTENT */
+ #include <sys/param.h>
++
++#if defined(__UCLIBC__) && !defined(__HAS_NO_THREADS__)
+ #include <pthread.h>
++#endif
+ 
+ /* We don't want sys/mman.h to be included after we redefine mmap and
+    dlmunmap.  */
+@@ -214,8 +220,10 @@ static int dlmunmap(void *, size_t);
+ 
+ #if !(defined(X86_WIN32) || defined(X86_WIN64) || defined(__OS2__)) || defined (__CYGWIN__) || defined(__INTERIX)
+ 
++#if defined(__UCLIBC__) && !defined(__HAS_NO_THREADS__)
+ /* A mutex used to synchronize access to *exec* variables in this file.  */
+ static pthread_mutex_t open_temp_exec_file_mutex = PTHREAD_MUTEX_INITIALIZER;
++#endif
+ 
+ /* A file descriptor of a temporary file from which we'll map
+    executable pages.  */
+@@ -473,9 +481,13 @@ dlmmap (void *start, size_t length, int prot,
+ 
+   if (execsize == 0 || execfd == -1)
+     {
++#if defined(__UCLIBC__) && !defined(__HAS_NO_THREADS__)
+       pthread_mutex_lock (&open_temp_exec_file_mutex);
++#endif
+       ptr = dlmmap_locked (start, length, prot, flags, offset);
++#if defined(__UCLIBC__) && !defined(__HAS_NO_THREADS__)
+       pthread_mutex_unlock (&open_temp_exec_file_mutex);
++#endif
+ 
+       return ptr;
+     }
+-- 
+1.7.9.5
+
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH 2/2] Revert "libffi and python: need threads support"
  2014-09-14  7:00 [Buildroot] [PATCH 1/2] libffi: make thread support optional Jérôme Pouiller
@ 2014-09-14  7:00 ` Jérôme Pouiller
  2014-09-14 21:46 ` [Buildroot] [PATCH 1/2] libffi: make thread support optional Peter Korsgaard
  1 sibling, 0 replies; 3+ messages in thread
From: Jérôme Pouiller @ 2014-09-14  7:00 UTC (permalink / raw)
  To: buildroot

Buildroot now add a patch to libffi to fix support of threads. Thus, this
patch is no more needed.

This reverts commit 77cf5b5a71aa54039f4dbc509a1c7cb40aa04934.

Signed-off-by: J?r?me Pouiller <jezz@sysmic.org>
---
 package/libffi/Config.in  | 4 ----
 package/python/Config.in  | 5 ++---
 package/python3/Config.in | 5 ++---
 3 files changed, 4 insertions(+), 10 deletions(-)

diff --git a/package/libffi/Config.in b/package/libffi/Config.in
index 6edf570..7211f8f 100644
--- a/package/libffi/Config.in
+++ b/package/libffi/Config.in
@@ -1,6 +1,5 @@
 config BR2_PACKAGE_LIBFFI
 	bool "libffi"
-	depends on BR2_TOOLCHAIN_HAS_THREADS
 	help
 	  The libffi library provides a portable, high level
 	  programming interface to various calling conventions. This
@@ -8,6 +7,3 @@ config BR2_PACKAGE_LIBFFI
 	  interface description at run-time.
 
 	  http://sourceware.org/libffi/
-
-comment "libffi needs a toolchain w/ threads"
-	depends on !BR2_TOOLCHAIN_HAS_THREADS
diff --git a/package/python/Config.in b/package/python/Config.in
index 8b27630..a0c78c6 100644
--- a/package/python/Config.in
+++ b/package/python/Config.in
@@ -3,16 +3,15 @@ config BR2_PACKAGE_PYTHON
 	depends on BR2_USE_WCHAR
 	# uses fork()
 	depends on BR2_USE_MMU
-	depends on BR2_TOOLCHAIN_HAS_THREADS # libffi
 	select BR2_PACKAGE_LIBFFI
 	help
 	  The python language interpreter.
 
 	  http://www.python.org/
 
-comment "python needs a toolchain w/ wchar, threads"
+comment "python needs a toolchain w/ wchar"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_USE_WCHAR
 
 if BR2_PACKAGE_PYTHON
 
diff --git a/package/python3/Config.in b/package/python3/Config.in
index 375390f..3e193c8 100644
--- a/package/python3/Config.in
+++ b/package/python3/Config.in
@@ -4,16 +4,15 @@ config BR2_PACKAGE_PYTHON3
 	depends on BR2_USE_WCHAR
 	# uses fork()
 	depends on BR2_USE_MMU
-	depends on BR2_TOOLCHAIN_HAS_THREADS # libffi
 	select BR2_PACKAGE_LIBFFI
 	help
 	  The python language interpreter.
 
 	  http://www.python.org/
 
-comment "python3 needs a toolchain w/ wchar, threads"
+comment "python3 needs a toolchain w/ wchar"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS
+	depends on !BR2_USE_WCHAR
 
 if BR2_PACKAGE_PYTHON3
 
-- 
1.9.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [Buildroot] [PATCH 1/2] libffi: make thread support optional
  2014-09-14  7:00 [Buildroot] [PATCH 1/2] libffi: make thread support optional Jérôme Pouiller
  2014-09-14  7:00 ` [Buildroot] [PATCH 2/2] Revert "libffi and python: need threads support" Jérôme Pouiller
@ 2014-09-14 21:46 ` Peter Korsgaard
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Korsgaard @ 2014-09-14 21:46 UTC (permalink / raw)
  To: buildroot

>>>>> "J?r?me" == J?r?me Pouiller <jezz@sysmic.org> writes:

 > From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 > Fixes:

 >   http://autobuild.buildroot.org/results/7ee57d01917ea72d1811469e482513dda2ceb1ea/build-end.log

 > Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
 > Signed-off-by: J?r?me Pouiller <jezz@sysmic.org>
 > ---

 > This patch was alread sent here:
 >   http://lists.busybox.net/pipermail/buildroot/2012-November/061976.html

 > It is a better solution than simply disable libffi (and all its dependencies).

What about my comments to that patch?

http://lists.busybox.net/pipermail/buildroot/2012-November/061980.html

-- 
Bye, Peter Korsgaard

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-09-14 21:46 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-14  7:00 [Buildroot] [PATCH 1/2] libffi: make thread support optional Jérôme Pouiller
2014-09-14  7:00 ` [Buildroot] [PATCH 2/2] Revert "libffi and python: need threads support" Jérôme Pouiller
2014-09-14 21:46 ` [Buildroot] [PATCH 1/2] libffi: make thread support optional Peter Korsgaard

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.