* [Buildroot] [PATCH 1/1] package/cairo: fix pthread detection
@ 2023-02-23 15:32 Fabrice Fontaine
2023-02-23 22:47 ` Fabrice Fontaine
` (2 more replies)
0 siblings, 3 replies; 7+ messages in thread
From: Fabrice Fontaine @ 2023-02-23 15:32 UTC (permalink / raw)
To: buildroot; +Cc: Fabrice Fontaine
pthreads detection fails if a warning is emitted resulting in the
following build failure with some toolchains:
onfigure:34189: checking for cairo's pthread feature
configure:34300: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm -lpthread >&5
/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
configure:34300: $? = 0
configure:34419: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
configure:34419: $? = 0
configure:34500: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
configure:34500: $? = 0
configure:34555: checking whether cairo's pthread feature could be enabled
configure:34557: result: no (can't link with -lpthread or -pthread)
[...]
In file included from cairo-mutex-type-private.h:45,
from cairo-scaled-font-private.h:45,
from cairoint.h:434,
from cairo-analysis-surface.c:37:
cairo-mutex-impl-private.h:262:3: error: #error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support."
262 | # error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support."
| ^~~~~
To avoid this build failure, add a patch that overrides this broken
mechanism
Fixes:
- http://autobuild.buildroot.org/results/5420beaf94855e47eeb08627e8e3c169dc00419a
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
...e.ac.pthread-respect-enable-pthreads.patch | 59 +++++++++++++++++++
package/cairo/cairo.mk | 13 ++--
2 files changed, 68 insertions(+), 4 deletions(-)
create mode 100644 package/cairo/0005-build-configure.ac.pthread-respect-enable-pthreads.patch
diff --git a/package/cairo/0005-build-configure.ac.pthread-respect-enable-pthreads.patch b/package/cairo/0005-build-configure.ac.pthread-respect-enable-pthreads.patch
new file mode 100644
index 0000000000..c350c596cf
--- /dev/null
+++ b/package/cairo/0005-build-configure.ac.pthread-respect-enable-pthreads.patch
@@ -0,0 +1,59 @@
+From 243fe7f3d51c23159e25f36adee7e953fee29f6c Mon Sep 17 00:00:00 2001
+From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+Date: Thu, 23 Feb 2023 16:07:04 +0100
+Subject: [PATCH] build/configure.ac.pthread: respect --enable-pthreads
+
+Respect --enable-pthreads as pthreads detection fails if a warning is
+emitted resulting in the following build failure with some toolchains:
+
+onfigure:34189: checking for cairo's pthread feature
+configure:34300: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm -lpthread >&5
+/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
+/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
+configure:34300: $? = 0
+configure:34419: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
+/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
+/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
+configure:34419: $? = 0
+configure:34500: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
+/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
+/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
+configure:34500: $? = 0
+configure:34555: checking whether cairo's pthread feature could be enabled
+configure:34557: result: no (can't link with -lpthread or -pthread)
+
+[...]
+
+In file included from cairo-mutex-type-private.h:45,
+ from cairo-scaled-font-private.h:45,
+ from cairoint.h:434,
+ from cairo-analysis-surface.c:37:
+cairo-mutex-impl-private.h:262:3: error: #error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support."
+ 262 | # error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support."
+ | ^~~~~
+
+Fixes:
+ - http://autobuild.buildroot.org/results/5420beaf94855e47eeb08627e8e3c169dc00419a
+
+Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
+---
+ build/configure.ac.pthread | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/build/configure.ac.pthread b/build/configure.ac.pthread
+index 29c930da9..084445587 100644
+--- a/build/configure.ac.pthread
++++ b/build/configure.ac.pthread
+@@ -244,7 +244,8 @@ AC_DEFUN([CAIRO_CONFIGURE_PTHREAD],[dnl
+
+ dnl Make sure we scored some pthreads.
+ if test "x$enable_pthread" = "xyes" -a "x$have_pthread" != "xyes"; then
+- AC_MSG_ERROR([pthread requested but not found])
++ AC_MSG_WARN([pthread requested but not found])
++ have_pthread=yes
+ fi
+
+ dnl Set the output variables for CAIRO_ENABLE.
+--
+2.39.1
+
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index e8a704c7da..9034068403 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -11,6 +11,8 @@ CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1 COPYING-MPL-1.1
CAIRO_CPE_ID_VENDOR = cairographics
CAIRO_SITE = http://cairographics.org/releases
CAIRO_INSTALL_STAGING = YES
+# We're patching build/configure.ac.pthread
+CAIRO_AUTORECONF = YES
# 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
CAIRO_IGNORE_CVES += CVE-2018-19876
@@ -26,10 +28,6 @@ ifeq ($(BR2_m68k_cf),y)
CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
endif
-ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
-CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
-endif
-
# cairo can use C++11 atomics when available, so we need to link with
# libatomic for the architectures who need libatomic.
ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
@@ -70,6 +68,13 @@ HOST_CAIRO_DEPENDENCIES = \
host-pixman \
host-pkgconf
+ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
+CAIRO_CONF_OPTS += --enable-pthread
+else
+CAIRO_CONF_OPTS += --disable-pthread
+CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
+endif
+
# DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
# DirectFB. Break circular dependency by disabling DirectFB support in Cairo
# (which is experimental)
--
2.39.1
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/cairo: fix pthread detection
2023-02-23 15:32 Fabrice Fontaine
@ 2023-02-23 22:47 ` Fabrice Fontaine
2023-02-23 23:00 ` Thomas Petazzoni via buildroot
2023-09-11 21:08 ` Thomas Petazzoni via buildroot
2 siblings, 0 replies; 7+ messages in thread
From: Fabrice Fontaine @ 2023-02-23 22:47 UTC (permalink / raw)
To: buildroot
[-- Attachment #1.1: Type: text/plain, Size: 12047 bytes --]
Le jeu. 23 févr. 2023 à 16:32, Fabrice Fontaine <fontaine.fabrice@gmail.com>
a écrit :
> pthreads detection fails if a warning is emitted resulting in the
> following build failure with some toolchains:
>
> onfigure:34189: checking for cairo's pthread feature
> configure:34300:
> /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc
> -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> conftest.c -lrt -latomic -lexecinfo -lm -lpthread >&5
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> warning:
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o:
> missing .note.GNU-stack section implies executable stack
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> NOTE: This behaviour is deprecated and will be removed in a future version
> of the linker
> configure:34300: $? = 0
> configure:34419:
> /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc
> -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -pthread
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> conftest.c -lrt -latomic -lexecinfo -lm >&5
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> warning:
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o:
> missing .note.GNU-stack section implies executable stack
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> NOTE: This behaviour is deprecated and will be removed in a future version
> of the linker
> configure:34419: $? = 0
> configure:34500:
> /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc
> -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> conftest.c -lrt -latomic -lexecinfo -lm >&5
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> warning:
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o:
> missing .note.GNU-stack section implies executable stack
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> NOTE: This behaviour is deprecated and will be removed in a future version
> of the linker
> configure:34500: $? = 0
> configure:34555: checking whether cairo's pthread feature could be enabled
> configure:34557: result: no (can't link with -lpthread or -pthread)
>
It should be noted that shellinabox has the same kind of issue, a warning
is preventing the correct detection of ptsname_r:
http://autobuild.buildroot.org/results/287/2872b26253ecb5a1550268fcbcefe8fd974ff70d//shellinabox-2.20/config.log
So there is something fishy with those recent autobuilder failures.
>
> [...]
>
> In file included from cairo-mutex-type-private.h:45,
> from cairo-scaled-font-private.h:45,
> from cairoint.h:434,
> from cairo-analysis-surface.c:37:
> cairo-mutex-impl-private.h:262:3: error: #error "XXX: No mutex
> implementation found. Cairo will not work with multiple threads. Define
> CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile
> cairo without thread-safety support."
> 262 | # error "XXX: No mutex implementation found. Cairo will not work
> with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and
> accept this limitation and compile cairo without thread-safety support."
> | ^~~~~
>
> To avoid this build failure, add a patch that overrides this broken
> mechanism
>
> Fixes:
> -
> http://autobuild.buildroot.org/results/5420beaf94855e47eeb08627e8e3c169dc00419a
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> ...e.ac.pthread-respect-enable-pthreads.patch | 59 +++++++++++++++++++
> package/cairo/cairo.mk | 13 ++--
> 2 files changed, 68 insertions(+), 4 deletions(-)
> create mode 100644
> package/cairo/0005-build-configure.ac.pthread-respect-enable-pthreads.patch
>
> diff --git
> a/package/cairo/0005-build-configure.ac.pthread-respect-enable-pthreads.patch
> b/package/cairo/0005-build-configure.ac.pthread-respect-enable-pthreads.patch
> new file mode 100644
> index 0000000000..c350c596cf
> --- /dev/null
> +++
> b/package/cairo/0005-build-configure.ac.pthread-respect-enable-pthreads.patch
> @@ -0,0 +1,59 @@
> +From 243fe7f3d51c23159e25f36adee7e953fee29f6c Mon Sep 17 00:00:00 2001
> +From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +Date: Thu, 23 Feb 2023 16:07:04 +0100
> +Subject: [PATCH] build/configure.ac.pthread: respect --enable-pthreads
> +
> +Respect --enable-pthreads as pthreads detection fails if a warning is
> +emitted resulting in the following build failure with some toolchains:
> +
> +onfigure:34189: checking for cairo's pthread feature
> +configure:34300:
> /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc
> -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> conftest.c -lrt -latomic -lexecinfo -lm -lpthread >&5
> +/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> warning:
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o:
> missing .note.GNU-stack section implies executable stack
> +/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> NOTE: This behaviour is deprecated and will be removed in a future version
> of the linker
> +configure:34300: $? = 0
> +configure:34419:
> /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc
> -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -pthread
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> conftest.c -lrt -latomic -lexecinfo -lm >&5
> +/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> warning:
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o:
> missing .note.GNU-stack section implies executable stack
> +/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> NOTE: This behaviour is deprecated and will be removed in a future version
> of the linker
> +configure:34419: $? = 0
> +configure:34500:
> /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc
> -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE
> -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT
> -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
> conftest.c -lrt -latomic -lexecinfo -lm >&5
> +/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> warning:
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o:
> missing .note.GNU-stack section implies executable stack
> +/home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> NOTE: This behaviour is deprecated and will be removed in a future version
> of the linker
> +configure:34500: $? = 0
> +configure:34555: checking whether cairo's pthread feature could be enabled
> +configure:34557: result: no (can't link with -lpthread or -pthread)
> +
> +[...]
> +
> +In file included from cairo-mutex-type-private.h:45,
> + from cairo-scaled-font-private.h:45,
> + from cairoint.h:434,
> + from cairo-analysis-surface.c:37:
> +cairo-mutex-impl-private.h:262:3: error: #error "XXX: No mutex
> implementation found. Cairo will not work with multiple threads. Define
> CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile
> cairo without thread-safety support."
> + 262 | # error "XXX: No mutex implementation found. Cairo will not work
> with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and
> accept this limitation and compile cairo without thread-safety support."
> + | ^~~~~
> +
> +Fixes:
> + -
> http://autobuild.buildroot.org/results/5420beaf94855e47eeb08627e8e3c169dc00419a
> +
> +Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> +---
> + build/configure.ac.pthread | 3 ++-
> + 1 file changed, 2 insertions(+), 1 deletion(-)
> +
> +diff --git a/build/configure.ac.pthread b/build/configure.ac.pthread
> +index 29c930da9..084445587 100644
> +--- a/build/configure.ac.pthread
> ++++ b/build/configure.ac.pthread
> +@@ -244,7 +244,8 @@ AC_DEFUN([CAIRO_CONFIGURE_PTHREAD],[dnl
> +
> + dnl Make sure we scored some pthreads.
> + if test "x$enable_pthread" = "xyes" -a "x$have_pthread" != "xyes";
> then
> +- AC_MSG_ERROR([pthread requested but not found])
> ++ AC_MSG_WARN([pthread requested but not found])
> ++ have_pthread=yes
> + fi
> +
> + dnl Set the output variables for CAIRO_ENABLE.
> +--
> +2.39.1
> +
> diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
> index e8a704c7da..9034068403 100644
> --- a/package/cairo/cairo.mk
> +++ b/package/cairo/cairo.mk
> @@ -11,6 +11,8 @@ CAIRO_LICENSE_FILES = COPYING COPYING-LGPL-2.1
> COPYING-MPL-1.1
> CAIRO_CPE_ID_VENDOR = cairographics
> CAIRO_SITE = http://cairographics.org/releases
> CAIRO_INSTALL_STAGING = YES
> +# We're patching build/configure.ac.pthread
> +CAIRO_AUTORECONF = YES
>
> #
> 0002-ft-Use-FT_Done_MM_Var-instead-of-free-when-available-in-cairo_ft_apply_variation.patch
> CAIRO_IGNORE_CVES += CVE-2018-19876
> @@ -26,10 +28,6 @@ ifeq ($(BR2_m68k_cf),y)
> CAIRO_CONF_ENV += CFLAGS="$(TARGET_CFLAGS) -mxgot"
> endif
>
> -ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),)
> -CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
> -endif
> -
> # cairo can use C++11 atomics when available, so we need to link with
> # libatomic for the architectures who need libatomic.
> ifeq ($(BR2_TOOLCHAIN_HAS_LIBATOMIC),y)
> @@ -70,6 +68,13 @@ HOST_CAIRO_DEPENDENCIES = \
> host-pixman \
> host-pkgconf
>
> +ifeq ($(BR2_TOOLCHAIN_HAS_THREADS),y)
> +CAIRO_CONF_OPTS += --enable-pthread
> +else
> +CAIRO_CONF_OPTS += --disable-pthread
> +CAIRO_CONF_ENV += CPPFLAGS="$(TARGET_CPPFLAGS) -DCAIRO_NO_MUTEX=1"
> +endif
> +
> # DirectFB svg support rely on Cairo and Cairo DirectFB support depends on
> # DirectFB. Break circular dependency by disabling DirectFB support in
> Cairo
> # (which is experimental)
> --
> 2.39.1
>
>
Best Regards,
Fabrice
[-- Attachment #1.2: Type: text/html, Size: 14011 bytes --]
[-- Attachment #2: Type: text/plain, Size: 150 bytes --]
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/cairo: fix pthread detection
2023-02-23 15:32 Fabrice Fontaine
2023-02-23 22:47 ` Fabrice Fontaine
@ 2023-02-23 23:00 ` Thomas Petazzoni via buildroot
2023-03-10 20:23 ` Arnout Vandecappelle
2023-09-11 21:08 ` Thomas Petazzoni via buildroot
2 siblings, 1 reply; 7+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-02-23 23:00 UTC (permalink / raw)
To: Fabrice Fontaine; +Cc: buildroot
Hello,
On Thu, 23 Feb 2023 16:32:36 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
> pthreads detection fails if a warning is emitted resulting in the
> following build failure with some toolchains:
>
> onfigure:34189: checking for cairo's pthread feature
> configure:34300: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm -lpthread >&5
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
> configure:34300: $? = 0
So this returns success.
> configure:34419: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
> configure:34419: $? = 0
This as well.
> configure:34500: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
> configure:34500: $? = 0
This as well.
> configure:34555: checking whether cairo's pthread feature could be enabled
> configure:34557: result: no (can't link with -lpthread or -pthread)
So why does it conclude that thread support is not available?
> + dnl Make sure we scored some pthreads.
> + if test "x$enable_pthread" = "xyes" -a "x$have_pthread" != "xyes"; then
> +- AC_MSG_ERROR([pthread requested but not found])
> ++ AC_MSG_WARN([pthread requested but not found])
> ++ have_pthread=yes
This looks odd because you're basically "ignoring" the
detection/validation of thread support.
Best regards,
Thomas
--
Thomas Petazzoni, co-owner and CEO, Bootlin
Embedded Linux and Kernel engineering and training
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/cairo: fix pthread detection
2023-02-23 23:00 ` Thomas Petazzoni via buildroot
@ 2023-03-10 20:23 ` Arnout Vandecappelle
0 siblings, 0 replies; 7+ messages in thread
From: Arnout Vandecappelle @ 2023-03-10 20:23 UTC (permalink / raw)
To: Thomas Petazzoni, Fabrice Fontaine; +Cc: buildroot
On 24/02/2023 00:00, Thomas Petazzoni via buildroot wrote:
> Hello,
>
> On Thu, 23 Feb 2023 16:32:36 +0100
> Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
>
>> pthreads detection fails if a warning is emitted resulting in the
>> following build failure with some toolchains:
>>
>> onfigure:34189: checking for cairo's pthread feature
>> configure:34300: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm -lpthread >&5
>> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
>> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
>> configure:34300: $? = 0
>
> So this returns success.
>
>> configure:34419: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
>> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
>> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
>> configure:34419: $? = 0
>
> This as well.
>
>> configure:34500: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
>> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
>> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
>> configure:34500: $? = 0
>
> This as well.
>
>> configure:34555: checking whether cairo's pthread feature could be enabled
>> configure:34557: result: no (can't link with -lpthread or -pthread)
>
> So why does it conclude that thread support is not available?
Because the configure script is stupid. Extract from the script:
> ac_fn_c_try_compile ()
> {
> [...]
> (eval "$ac_compile") 2>conftest.err
> ac_status=$?
> if test -s conftest.err; then
> grep -v '^ *+' conftest.err >conftest.er1
> cat conftest.er1 >&5
> mv -f conftest.er1 conftest.err
> fi
> $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5
> test $ac_status = 0; } && {
> test -z "$ac_c_werror_flag" ||
> test ! -s conftest.err
^^^^^^^^^^^^^^^^^^^^^^
This test will fail (conftest.err is not empty).
> } && test -s conftest.$ac_objext; then :
> ac_retval=0
> else
> $as_echo "$as_me: failed program was:" >&5
> [...]
> } # ac_fn_c_try_compile
>
>
>> + dnl Make sure we scored some pthreads.
>> + if test "x$enable_pthread" = "xyes" -a "x$have_pthread" != "xyes"; then
>> +- AC_MSG_ERROR([pthread requested but not found])
>> ++ AC_MSG_WARN([pthread requested but not found])
>> ++ have_pthread=yes
>
> This looks odd because you're basically "ignoring" the
> detection/validation of thread support.
Yeah, the alternative is to patch host-autoconf to not do that stupid check of
conftest.err. Which is perhaps a better idea, because it solves things globally.
But who knows, maybe some checks actually rely on this?
Or alternative, do something with binutils 2.39 (which is the one that
introduced the warning) to suppress the warning. It probably won't fix external
toolchains then though.
Note that cairo upstream has moved to meson four years ago, we just haven't
updated cairo in a long time.
Regards,
Arnout
>
> Best regards,
>
> Thomas
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* [Buildroot] [PATCH 1/1] package/cairo: fix pthread detection
@ 2023-07-29 10:30 Bernd Kuhls
2023-09-11 21:06 ` Thomas Petazzoni via buildroot
0 siblings, 1 reply; 7+ messages in thread
From: Bernd Kuhls @ 2023-07-29 10:30 UTC (permalink / raw)
To: buildroot; +Cc: Fabrice Fontaine
Cairo's link check for pthreads support "must complete without warnings
or errors to stderr":
https://cgit.freedesktop.org/cairo/tree/build/aclocal.cairo.m4?h=1.16.0#n83
https://cgit.freedesktop.org/cairo/tree/build/configure.ac.pthread?h=1.16.0#n137
The pthread check fails with this defconfig
checking for cairo's pthread feature...
checking whether cairo's pthread feature could be enabled... no (can't link with -lpthread or -pthread)
due a warning thrown by ld:
/home/bernd/buildroot/output/per-package/cairo/host/bin/../lib/gcc/xtensa-buildroot-linux-uclibc/12.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
warning: /home/bernd/buildroot/br4/output/per-package/cairo/host/bin/../lib/gcc/xtensa-buildroot-linux-uclibc/12.3.0/crtendS.o:
missing .note.GNU-stack section implies executable stack
/home/bernd/buildroot/output/per-package/cairo/host/bin/../lib/gcc/xtensa-buildroot-linux-uclibc/12.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
NOTE: This behaviour is deprecated and will be removed in a future version of the linker
These linker warnings were introduced by binutils 2.39:
https://www.redhat.com/en/blog/linkers-warnings-about-executable-stacks-and-segments
Silence them by adding "-Wl,-z,noexecstack" to fix cairo's pthread check
Meanwhile upstream removed autoconf support on the master branch:
https://cgit.freedesktop.org/cairo/commit/?id=efe303d9db6e24d5786c15252327811338bc9b0a
so no need to notify them.
Fixes:
http://autobuild.buildroot.net/results/408/408a900ac01dbce145aff302c75f9f4e147f5672/
Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
---
package/cairo/cairo.mk | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/package/cairo/cairo.mk b/package/cairo/cairo.mk
index 7bc8f92deb..3e1a7956f7 100644
--- a/package/cairo/cairo.mk
+++ b/package/cairo/cairo.mk
@@ -19,7 +19,9 @@ CAIRO_IGNORE_CVES += CVE-2019-6462
# 0004-Fix-mask-usage-in-image-compositor.patch
CAIRO_IGNORE_CVES += CVE-2020-35492
-CAIRO_CONF_ENV = LIBS="$(CAIRO_LIBS)"
+CAIRO_CONF_ENV = \
+ LIBS="$(CAIRO_LIBS)" \
+ LDFLAGS="$(TARGET_LDFLAGS) -Wl,-z,noexecstack"
# relocation truncated to fit: R_68K_GOT16O
ifeq ($(BR2_m68k_cf),y)
--
2.39.2
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply related [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/cairo: fix pthread detection
2023-07-29 10:30 [Buildroot] [PATCH 1/1] package/cairo: fix pthread detection Bernd Kuhls
@ 2023-09-11 21:06 ` Thomas Petazzoni via buildroot
0 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-09-11 21:06 UTC (permalink / raw)
To: Bernd Kuhls; +Cc: Fabrice Fontaine, buildroot
On Sat, 29 Jul 2023 12:30:22 +0200
Bernd Kuhls <bernd@kuhls.net> wrote:
> Cairo's link check for pthreads support "must complete without warnings
> or errors to stderr":
> https://cgit.freedesktop.org/cairo/tree/build/aclocal.cairo.m4?h=1.16.0#n83
> https://cgit.freedesktop.org/cairo/tree/build/configure.ac.pthread?h=1.16.0#n137
>
> The pthread check fails with this defconfig
>
> checking for cairo's pthread feature...
> checking whether cairo's pthread feature could be enabled... no (can't link with -lpthread or -pthread)
>
> due a warning thrown by ld:
>
> /home/bernd/buildroot/output/per-package/cairo/host/bin/../lib/gcc/xtensa-buildroot-linux-uclibc/12.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> warning: /home/bernd/buildroot/br4/output/per-package/cairo/host/bin/../lib/gcc/xtensa-buildroot-linux-uclibc/12.3.0/crtendS.o:
> missing .note.GNU-stack section implies executable stack
>
> /home/bernd/buildroot/output/per-package/cairo/host/bin/../lib/gcc/xtensa-buildroot-linux-uclibc/12.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld:
> NOTE: This behaviour is deprecated and will be removed in a future version of the linker
>
> These linker warnings were introduced by binutils 2.39:
> https://www.redhat.com/en/blog/linkers-warnings-about-executable-stacks-and-segments
>
> Silence them by adding "-Wl,-z,noexecstack" to fix cairo's pthread check
>
> Meanwhile upstream removed autoconf support on the master branch:
> https://cgit.freedesktop.org/cairo/commit/?id=efe303d9db6e24d5786c15252327811338bc9b0a
> so no need to notify them.
>
> Fixes:
> http://autobuild.buildroot.net/results/408/408a900ac01dbce145aff302c75f9f4e147f5672/
>
> Signed-off-by: Bernd Kuhls <bernd@kuhls.net>
> ---
> package/cairo/cairo.mk | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
The correct fix for this was to fix gcc:
https://gitlab.com/buildroot.org/buildroot/-/commit/ab4f3fafaa839593b3efd9ea12c8ee5d9340cdeb
So I've marked this patch as Rejected. Thanks!
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [Buildroot] [PATCH 1/1] package/cairo: fix pthread detection
2023-02-23 15:32 Fabrice Fontaine
2023-02-23 22:47 ` Fabrice Fontaine
2023-02-23 23:00 ` Thomas Petazzoni via buildroot
@ 2023-09-11 21:08 ` Thomas Petazzoni via buildroot
2 siblings, 0 replies; 7+ messages in thread
From: Thomas Petazzoni via buildroot @ 2023-09-11 21:08 UTC (permalink / raw)
To: Fabrice Fontaine; +Cc: buildroot
On Thu, 23 Feb 2023 16:32:36 +0100
Fabrice Fontaine <fontaine.fabrice@gmail.com> wrote:
> pthreads detection fails if a warning is emitted resulting in the
> following build failure with some toolchains:
>
> onfigure:34189: checking for cairo's pthread feature
> configure:34300: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm -lpthread >&5
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
> configure:34300: $? = 0
> configure:34419: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -pthread -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
> configure:34419: $? = 0
> configure:34500: /home/buildroot/autobuild/instance-1/output-1/host/bin/xtensa-buildroot-linux-uclibc-gcc -o conftest -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -mlongcalls -mauto-litpools -O0 -g2 -D_REENTRANT -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 conftest.c -lrt -latomic -lexecinfo -lm >&5
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: warning: /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/crtend.o: missing .note.GNU-stack section implies executable stack
> /home/buildroot/autobuild/instance-1/output-1/host/lib/gcc/xtensa-buildroot-linux-uclibc/11.3.0/../../../../xtensa-buildroot-linux-uclibc/bin/ld: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
> configure:34500: $? = 0
> configure:34555: checking whether cairo's pthread feature could be enabled
> configure:34557: result: no (can't link with -lpthread or -pthread)
>
> [...]
>
> In file included from cairo-mutex-type-private.h:45,
> from cairo-scaled-font-private.h:45,
> from cairoint.h:434,
> from cairo-analysis-surface.c:37:
> cairo-mutex-impl-private.h:262:3: error: #error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support."
> 262 | # error "XXX: No mutex implementation found. Cairo will not work with multiple threads. Define CAIRO_NO_MUTEX to 1 to acknowledge and accept this limitation and compile cairo without thread-safety support."
> | ^~~~~
>
> To avoid this build failure, add a patch that overrides this broken
> mechanism
>
> Fixes:
> - http://autobuild.buildroot.org/results/5420beaf94855e47eeb08627e8e3c169dc00419a
>
> Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
> ---
> ...e.ac.pthread-respect-enable-pthreads.patch | 59 +++++++++++++++++++
> package/cairo/cairo.mk | 13 ++--
> 2 files changed, 68 insertions(+), 4 deletions(-)
> create mode 100644 package/cairo/0005-build-configure.ac.pthread-respect-enable-pthreads.patch
This has been fixed directly in gcc by:
https://gitlab.com/buildroot.org/buildroot/-/commit/ab4f3fafaa839593b3efd9ea12c8ee5d9340cdeb
Best regards,
Thomas
--
Thomas Petazzoni, CTO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
_______________________________________________
buildroot mailing list
buildroot@buildroot.org
https://lists.buildroot.org/mailman/listinfo/buildroot
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-09-11 21:08 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-07-29 10:30 [Buildroot] [PATCH 1/1] package/cairo: fix pthread detection Bernd Kuhls
2023-09-11 21:06 ` Thomas Petazzoni via buildroot
-- strict thread matches above, loose matches on Subject: below --
2023-02-23 15:32 Fabrice Fontaine
2023-02-23 22:47 ` Fabrice Fontaine
2023-02-23 23:00 ` Thomas Petazzoni via buildroot
2023-03-10 20:23 ` Arnout Vandecappelle
2023-09-11 21:08 ` Thomas Petazzoni via buildroot
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox