Skip to contentSkip to conversation

Use llvmpile for mesa on x86/x86-64

PATCH In review Khem Raj 3 participants 17 messages Aug 20, 2018 – Aug 12, 2019

lore
Share & tools
lore

Khem Raj

author
#0 lore raw

v3 cover Use llvmpile for mesa on x86/x86-64

This series fixes llvm build to support multilib configurations Adds dos2unix bbclass to core from meta-oe
Fixes ppc security flags world builds

v2:
Upgrade binutils and gdb
Fix libidb2 cross build issue when build host == target host

v3:
Fix sstate differences between different builds for llvm-native Fix gdb on x86_64/musl
Import dos2unix recipe into core along with bbclass

The following changes since commit 3cb303ffee8610d41c9a0745d366556c24066bc3:

weston-init: run login before start weston.service (2018-08-20 11:59:44 +0100)

are available in the Git repository at:

git://git.openembedded.org/openembedded-core-contrib kraj/master
http://cgit.openembedded.org/openembedded-core-contrib/log/?h=kraj/master

Khem Raj (5):
mesa: Enable gallium-llvm on x86 and x86_64
gdb: Upgrade to 8.1.1
gdb: Alias rpl_stat to stat() on musl dos2unix.bbclass: Move to oe-core
llvm: Use HOST_ARCH in LLVM_TARGETS_TO_BUILD for builds

 meta/conf/distro/include/maintainers.inc      |  1 +
 .../gdb/{gdb-8.1.inc => gdb-8.1.1.inc}        |  4 +--
 ...ian_8.1.bb => gdb-cross-canadian_8.1.1.bb} |  0
 .../{gdb-cross_8.1.bb => gdb-cross_8.1.1.bb}  |  0
 .../gdb/{gdb_8.1.bb => gdb_8.1.1.bb}          |  2 +-
 meta/recipes-devtools/llvm/llvm_git.bb        | 11 +++---
 meta/recipes-graphics/cairo/cairo.inc         |  3 +-
 meta/recipes-graphics/mesa/mesa.inc           |  3 ++
 .../dos2unix/dos2unix_7.4.0.bb                | 34 +++++++++++++++++++
 9 files changed, 49 insertions(+), 9 deletions(-)
 rename meta/recipes-devtools/gdb/{gdb-8.1.inc => gdb-8.1.1.inc} (89%)
 rename meta/recipes-devtools/gdb/{gdb-cross-canadian_8.1.bb => gdb-cross-canadian_8.1.1.bb} (100%)
 rename meta/recipes-devtools/gdb/{gdb-cross_8.1.bb => gdb-cross_8.1.1.bb} (100%)
 rename meta/recipes-devtools/gdb/{gdb_8.1.bb => gdb_8.1.1.bb} (92%)
 create mode 100644 meta/recipes-support/dos2unix/dos2unix_7.4.0.bb
Signature · 1 line
2.18.0
author
#1 lore raw

PATCH v3 1/5 mesa: Enable gallium-llvm on x86 and x86_64

---
 meta/recipes-graphics/cairo/cairo.inc | 3 ++-
 meta/recipes-graphics/mesa/mesa.inc   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +2 -1
index 20e0d2c92a..7347f223ff 100644
@@ -22,7 +22,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)}"
+           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
meta/recipes-graphics/mesa/mesa.inc +3 -0
index 5afd0db4b7..dd626d9f00 100644
@@ -48,6 +48,9 @@ PACKAGECONFIG ??= "${@bb.utils.filter('DISTRO_FEATURES', 'wayland vulkan', d)} \
                    ${@bb.utils.contains('DISTRO_FEATURES', 'x11 vulkan', 'dri3', '', d)} \
 		   "
 
+PACKAGECONFIG_append_x86 = " gallium-llvm gallium r600"
+PACKAGECONFIG_append_x86-64 = " gallium-llvm gallium r600"
+
 # "gbm" requires "dri", "opengl"
 PACKAGECONFIG[gbm] = "--enable-gbm,--disable-gbm"
 
Signature · 1 line
2.18.0
author
#10 lore raw

PATCH v3 2/5 gdb: Upgrade to 8.1.1

In reply to Khem Raj
---
 meta/recipes-devtools/gdb/{gdb-8.1.inc => gdb-8.1.1.inc}      | 4 ++--
 ...{gdb-cross-canadian_8.1.bb => gdb-cross-canadian_8.1.1.bb} | 0
 .../gdb/{gdb-cross_8.1.bb => gdb-cross_8.1.1.bb}              | 0
 meta/recipes-devtools/gdb/{gdb_8.1.bb => gdb_8.1.1.bb}        | 0
 4 files changed, 2 insertions(+), 2 deletions(-)
 rename meta/recipes-devtools/gdb/{gdb-8.1.inc => gdb-8.1.1.inc} (89%)
 rename meta/recipes-devtools/gdb/{gdb-cross-canadian_8.1.bb => gdb-cross-canadian_8.1.1.bb} (100%)
 rename meta/recipes-devtools/gdb/{gdb-cross_8.1.bb => gdb-cross_8.1.1.bb} (100%)
 rename meta/recipes-devtools/gdb/{gdb_8.1.bb => gdb_8.1.1.bb} (100%)
meta/recipes-devtools/gdb/gdb-8.1.1.inc renamed from meta/recipes-devtools/gdb/gdb-8.1.inc +2 -2
similarity index 89%
rename from meta/recipes-devtools/gdb/gdb-8.1.inc
rename to meta/recipes-devtools/gdb/gdb-8.1.1.inc
index 4d9faa2d4b..ad80dd3e4d 100644
@@ -18,6 +18,6 @@ SRC_URI = "http://ftp.gnu.org/gnu/gdb/gdb-${PV}.tar.xz \
            file://package_devel_gdb_patches_120-sigprocmask-invalid-call.patch \
            file://gdb-Fix-ia64-defining-TRAP_HWBKPT-before-including-g.patch \
 "
-SRC_URI[md5sum] = "f46487561f9a16916a8102316f7fd105"
-SRC_URI[sha256sum] = "af61a0263858e69c5dce51eab26662ff3d2ad9aa68da9583e8143b5426be4b34"
+SRC_URI[md5sum] = "372fa63a53adeee1bfbfd581d8da9e34"
+SRC_URI[sha256sum] = "97dcc3169bd430270fc29adb65145846a58c1b55cdbb73382a4a89307bdad03c"
 
meta/recipes-devtools/gdb/gdb-cross-canadian_8.1.1.bb renamed from meta/recipes-devtools/gdb/gdb-cross-canadian_8.1.bb +0 -0
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross-canadian_8.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross-canadian_8.1.1.bb
meta/recipes-devtools/gdb/gdb-cross_8.1.1.bb renamed from meta/recipes-devtools/gdb/gdb-cross_8.1.bb +0 -0
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb-cross_8.1.bb
rename to meta/recipes-devtools/gdb/gdb-cross_8.1.1.bb
meta/recipes-devtools/gdb/gdb_8.1.1.bb renamed from meta/recipes-devtools/gdb/gdb_8.1.bb +0 -0
similarity index 100%
rename from meta/recipes-devtools/gdb/gdb_8.1.bb
rename to meta/recipes-devtools/gdb/gdb_8.1.1.bb
Signature · 1 line
2.18.0
author
#11 lore raw

PATCH v3 3/5 gdb: Alias rpl_stat to stat() on musl

In reply to Khem Raj

Use CPPFLAGS instead of CFLAGS since there is C++ compiler being used for somefiles

Fixes
gdb/gdbserver/../../../gdb-8.1.1/gdb/gdbserver/../common/common-utils.c:419: undefined reference to `rpl_stat' | collect2: error: ld returned 1 exit status
| make[4]: *** [Makefile:414: libinproctrace.so] Error 1

---
 meta/recipes-devtools/gdb/gdb_8.1.1.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-devtools/gdb/gdb_8.1.1.bb +1 -1
index 84ab08ce93..c6eac84dd8 100644
@@ -26,4 +26,4 @@ EOF
 		chmod +x ${WORKDIR}/python
 	fi
 }
-CFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday"
+CPPFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday -Drpl_stat=stat"
Signature · 1 line
2.18.0
author
#15 lore raw

PATCH v3 4/5 dos2unix.bbclass: Move to oe-core

In reply to Khem Raj

- Import from meta-oe layer

- This is useful for many packages where CR-LF
needs to be adjusted, many recipes depend on it
e.g. meta-multimedia libebml and so on.

- Add myself as maintainer for now

---
 meta/conf/distro/include/maintainers.inc      |  1 +
 .../dos2unix/dos2unix_7.4.0.bb                | 34 +++++++++++++++++++
 2 files changed, 35 insertions(+)
 create mode 100644 meta/recipes-support/dos2unix/dos2unix_7.4.0.bb
meta/conf/distro/include/maintainers.inc +1 -0
index 0d1c72a85f..19bd148700 100644
@@ -134,6 +134,7 @@ RECIPE_MAINTAINER_pn-dmidecode = "Alexander Kanavin <[email protected]>"
 RECIPE_MAINTAINER_pn-dnf = "Alexander Kanavin <[email protected]>"
 RECIPE_MAINTAINER_pn-docbook-xml-dtd4 = "Yi Zhao <[email protected]>"
 RECIPE_MAINTAINER_pn-docbook-xsl-stylesheets = "Yi Zhao <[email protected]>"
+RECIPE_MAINTAINER_pn-dos2unit = "Khem Raj <[email protected]>"
 RECIPE_MAINTAINER_pn-dosfstools = "Yi Zhao <[email protected]>"
 RECIPE_MAINTAINER_pn-dpkg = "Aníbal Limón <[email protected]>"
 RECIPE_MAINTAINER_pn-dropbear = "Yi Zhao <[email protected]>"
meta/recipes-support/dos2unix/dos2unix_7.4.0.bb new file +34 -0
new file mode 100644
index 0000000000..9964315ee7
@@ -0,0 +1,34 @@
+SUMMARY = "Convert text file line endings between CRLF and LF"
+DESCRIPTION = "The Dos2unix package includes utilities dos2unix and \
+unix2dos to convert plain text files in DOS or Mac format to Unix \
+format and vice versa."
+HOMEPAGE = "http://waterlan.home.xs4all.nl/dos2unix.html"
+SECTION = "support"
+
+LICENSE = "BSD-2-Clause"
+LIC_FILES_CHKSUM = "file://COPYING.txt;md5=1b78fca784db24f4a40e30b300787f3f"
+
+SRC_URI = "git://git.code.sf.net/p/dos2unix/dos2unix"
+
+# Release 7.4.0
+SRCREV = "1182533bde3c1fe65be2ead465e87671faa2c027"
+
+S = "${WORKDIR}/git/dos2unix"
+
+inherit gettext perlnative
+
+# The dos2unix NLS relies on po4a-native, while po4a recipe is
+# provided by meta-perl layer, so make it optional here, you
+# need have meta-perl in bblayers.conf before enabling nls in
+# PACKAGECONFIG.
+PACKAGECONFIG ??= ""
+PACKAGECONFIG[nls] = "ENABLE_NLS=1,ENABLE_NLS=,po4a-native"
+
+EXTRA_OEMAKE = "${PACKAGECONFIG_CONFARGS} LDFLAGS_USER='${LDFLAGS}'"
+EXTRA_OEMAKE_class-native = "ENABLE_NLS="
+
+do_install () {
+	oe_runmake DESTDIR="${D}${base_prefix}" install
+}
+
+BBCLASSEXTEND = "native nativesdk"
Signature · 1 line
2.18.0
author
#16 lore raw

PATCH v3 5/5 llvm: Use HOST_ARCH in LLVM_TARGETS_TO_BUILD for builds

In reply to Khem Raj

LLVM_TARGETS_TO_BUILD is needed to represent HOST_ARCH for builds and target specific additions should use class-target override

---
 meta/recipes-devtools/llvm/llvm_git.bb | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)
meta/recipes-devtools/llvm/llvm_git.bb +6 -5
index d853d4151d..df7c1dddd3 100644
@@ -44,14 +44,15 @@ def get_llvm_arch(bb, d, arch_var):
     else:
         raise bb.parse.SkipRecipe("Cannot map '%s' to a supported LLVM architecture" % a)
 
-def get_llvm_target_arch(bb, d):
-    return get_llvm_arch(bb, d, 'TARGET_ARCH')
+def get_llvm_host_arch(bb, d):
+    return get_llvm_arch(bb, d, 'HOST_ARCH')
+
 #
 # Default to build all OE-Core supported target arches (user overridable).
 #
-LLVM_TARGETS ?= "${@get_llvm_target_arch(bb, d)}"
-LLVM_TARGETS_prepend_x86 = "AMDGPU;"
-LLVM_TARGETS_prepend_x86-64 = "AMDGPU;"
+LLVM_TARGETS ?= "${@get_llvm_host_arch(bb, d)}"
+LLVM_TARGETS_prepend_class-target_x86 = "AMDGPU;"
+LLVM_TARGETS_prepend_class-target_x86-64 = "AMDGPU;"
 
 ARM_INSTRUCTION_SET_armv5 = "arm"
 ARM_INSTRUCTION_SET_armv4t = "arm"
Signature · 1 line
2.18.0
#2 lore raw

Re: [PATCH 1/5] mesa: Enable gallium-llvm on x86 and x86_64

In reply to Khem Raj

meta/recipes-graphics/mesa/mesa.inc

Quoted 22 lines · Khem Raj
---
 meta/recipes-graphics/cairo/cairo.inc | 3 ++-
 meta/recipes-graphics/mesa/mesa.inc   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +2 -1
index 20e0d2c92a..7347f223ff 100644
@@ -22,7 +22,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)}"
+           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
meta/recipes-graphics/mesa/mesa.inc +0 -0
index 5afd0db4b7..dd626d9f00 100644

^ I think this came in accidentaly and it breaks builds when adding packageconfig glesv2:

| configure: error: use either --enable-gl=yes or --enable-glesv2=yes. Not both at the same time.

Please check

Andreas

author
#3 lore raw

Re: [PATCH 1/5] mesa: Enable gallium-llvm on x86 and x86_64

Quoted 27 lines · Andreas Müller

meta/recipes-graphics/mesa/mesa.inc

Quoted 22 lines · Khem Raj
---
 meta/recipes-graphics/cairo/cairo.inc | 3 ++-
 meta/recipes-graphics/mesa/mesa.inc   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +2 -1
index 20e0d2c92a..7347f223ff 100644
@@ -22,7 +22,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)}"
+           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
meta/recipes-graphics/mesa/mesa.inc +0 -0
index 5afd0db4b7..dd626d9f00 100644

^ I think this came in accidentaly and it breaks builds when adding packageconfig glesv2:

Quoted 2 lines

| configure: error: use either --enable-gl=yes or --enable-glesv2=yes. Not both at the same time.

do you remove opengl from DISTRO_FEATURES when enabling glesv2 ? try that out.

Quoted 4 lines

Please check

Andreas

#4 lore raw

Re: [PATCH 1/5] mesa: Enable gallium-llvm on x86 and x86_64

Quoted 28 lines · Khem Raj
Quoted 27 lines · Andreas Müller

meta/recipes-graphics/mesa/mesa.inc

Quoted 22 lines · Khem Raj
---
 meta/recipes-graphics/cairo/cairo.inc | 3 ++-
 meta/recipes-graphics/mesa/mesa.inc   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +2 -1
index 20e0d2c92a..7347f223ff 100644
@@ -22,7 +22,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)}"
+           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
meta/recipes-graphics/mesa/mesa.inc +0 -0
index 5afd0db4b7..dd626d9f00 100644

^ I think this came in accidentaly and it breaks builds when adding packageconfig glesv2:

Quoted 7 lines
Quoted 2 lines

| configure: error: use either --enable-gl=yes or --enable-glesv2=yes. Not both at the same time.

do you remove opengl from DISTRO_FEATURES when enabling glesv2 ? try that out.

Quoted 1 line

Yes of course I can. But this patch is wrong - we don't have gles as distro feature - and it is not even mentioned in commit message why this is done.

Andreas

#5 lore raw

Re: [PATCH 1/5] mesa: Enable gallium-llvm on x86 and x86_64

Quoted 32 lines · Andreas Müller
Quoted 31 lines · Khem Raj
Quoted 29 lines · Andreas Müller

meta/recipes-graphics/mesa/mesa.inc

Quoted 22 lines · Khem Raj
---
 meta/recipes-graphics/cairo/cairo.inc | 3 ++-
 meta/recipes-graphics/mesa/mesa.inc   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +2 -1
index 20e0d2c92a..7347f223ff 100644
@@ -22,7 +22,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)}"
+           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
meta/recipes-graphics/mesa/mesa.inc +0 -0
index 5afd0db4b7..dd626d9f00 100644

^ I think this came in accidentaly and it breaks builds when adding packageconfig glesv2:

| configure: error: use either --enable-gl=yes or --enable-glesv2=yes. Not both at the same time.

Quoted 8 lines
Quoted 4 lines

do you remove opengl from DISTRO_FEATURES when enabling glesv2 ? try that out.

Quoted 1 line

Yes of course I can. But this patch is wrong - we don't have gles as distro feature - and it is not even mentioned in commit message why this is done.

I am tempted to send a revert for the cairo part:

* Cross: It changes defaults valid for long time
* Native: As far as I can remember it causes trouble for cairo-native
* It went through without mentioning

Andreas

author
#6 lore raw

Re: [PATCH 1/5] mesa: Enable gallium-llvm on x86 and x86_64

Hi Andreas

Quoted 42 lines · Andreas Müller
Quoted 32 lines · Andreas Müller
Quoted 31 lines · Khem Raj
Quoted 29 lines · Andreas Müller

meta/recipes-graphics/mesa/mesa.inc

Quoted 22 lines · Khem Raj
---
 meta/recipes-graphics/cairo/cairo.inc | 3 ++-
 meta/recipes-graphics/mesa/mesa.inc   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +2 -1
index 20e0d2c92a..7347f223ff 100644
@@ -22,7 +22,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)}"
+           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
meta/recipes-graphics/mesa/mesa.inc +0 -0
index 5afd0db4b7..dd626d9f00 100644

^ I think this came in accidentaly and it breaks builds when adding packageconfig glesv2:

| configure: error: use either --enable-gl=yes or --enable-glesv2=yes. Not both at the same time.

Quoted 8 lines
Quoted 4 lines

do you remove opengl from DISTRO_FEATURES when enabling glesv2 ? try that out.

Quoted 1 line

Yes of course I can. But this patch is wrong - we don't have gles as distro feature - and it is not even mentioned in commit message why this is done.

Quoted 5 lines

I am tempted to send a revert for the cairo part:

* Cross: It changes defaults valid for long time
* Native: As far as I can remember it causes trouble for cairo-native
* It went through without mentioning

opengl as a DISTRO_FEATURE should tie into packageconfigs, the situation before this patch was not ideal, people got to work with it.

as seen in the example you cited, we can't mix opengl and gles support in packages. other layers have solved your kind of usecase like below

https://github.com/WebPlatformForEmbedded/meta-wpe/blob/master/recipes-graphics/cairo/cairo_%.bbappend

Quoted 2 lines

Andreas

#7 lore raw

Re: [PATCH 1/5] mesa: Enable gallium-llvm on x86 and x86_64

Quoted 51 lines · Khem Raj

Hi Andreas

Quoted 42 lines · Andreas Müller
Quoted 32 lines · Andreas Müller
Quoted 31 lines · Khem Raj
Quoted 29 lines · Andreas Müller

meta/recipes-graphics/mesa/mesa.inc

Quoted 22 lines · Khem Raj
---
 meta/recipes-graphics/cairo/cairo.inc | 3 ++-
 meta/recipes-graphics/mesa/mesa.inc   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +2 -1
index 20e0d2c92a..7347f223ff 100644
@@ -22,7 +22,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)}"
+           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
meta/recipes-graphics/mesa/mesa.inc +0 -0
index 5afd0db4b7..dd626d9f00 100644

^ I think this came in accidentaly and it breaks builds when adding packageconfig glesv2:

| configure: error: use either --enable-gl=yes or --enable-glesv2=yes. Not both at the same time.

Quoted 8 lines
Quoted 4 lines

do you remove opengl from DISTRO_FEATURES when enabling glesv2 ? try that out.

Quoted 1 line

Yes of course I can. But this patch is wrong - we don't have gles as distro feature - and it is not even mentioned in commit message why this is done.

Quoted 5 lines

I am tempted to send a revert for the cairo part:

* Cross: It changes defaults valid for long time
* Native: As far as I can remember it causes trouble for cairo-native
* It went through without mentioning

Quoted 7 lines

opengl as a DISTRO_FEATURE should tie into packageconfigs, the situation before this patch was not ideal, people got to work with it.

as seen in the example you cited, we can't mix opengl and gles support in packages. other layers have solved your kind of usecase like below

https://github.com/WebPlatformForEmbedded/meta-wpe/blob/master/recipes-graphics/cairo/cairo_%.bbappend

* ^The link is broken
* Am quite sure that it breaks cairo-native or dependants (have no logs at hand - it is some time ago)
* Again: I consider this a major change and it was not even mentioned/discussed. To me it has nothing to do with 'mesa: Enable gallium-llvm on x86 and x86_64' - btw: what does that fix?

Let's close discussion here - I think after all these years here I am able to find a workaround in case of further issues. Thanks for support.

Andreas

author
#8 lore raw

Re: [PATCH 1/5] mesa: Enable gallium-llvm on x86 and x86_64

Hi Andreas

Quoted 53 lines · Andreas Müller
Quoted 51 lines · Khem Raj

Hi Andreas

Quoted 47 lines · Andreas Müller
Quoted 32 lines · Andreas Müller
Quoted 31 lines · Khem Raj
Quoted 29 lines · Andreas Müller

meta/recipes-graphics/mesa/mesa.inc

Quoted 22 lines · Khem Raj
---
 meta/recipes-graphics/cairo/cairo.inc | 3 ++-
 meta/recipes-graphics/mesa/mesa.inc   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +2 -1
index 20e0d2c92a..7347f223ff 100644
@@ -22,7 +22,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)}"
+           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
meta/recipes-graphics/mesa/mesa.inc +0 -0
index 5afd0db4b7..dd626d9f00 100644

^ I think this came in accidentaly and it breaks builds when adding packageconfig glesv2:

| configure: error: use either --enable-gl=yes or --enable-glesv2=yes. Not both at the same time.

Quoted 8 lines
Quoted 4 lines

do you remove opengl from DISTRO_FEATURES when enabling glesv2 ? try that out.

Quoted 1 line

Yes of course I can. But this patch is wrong - we don't have gles as distro feature - and it is not even mentioned in commit message why this is done.

I am tempted to send a revert for the cairo part:

* Cross: It changes defaults valid for long time
* Native: As far as I can remember it causes trouble for cairo-native
* It went through without mentioning

Quoted 8 lines
Quoted 7 lines

opengl as a DISTRO_FEATURE should tie into packageconfigs, the situation before this patch was not ideal, people got to work with it.

as seen in the example you cited, we can't mix opengl and gles support in packages. other layers have solved your kind of usecase like below

https://github.com/WebPlatformForEmbedded/meta-wpe/blob/master/recipes-graphics/cairo/cairo_%.bbappend

* ^The link is broken

ah see cairo bbappend here
https://github.com/WebPlatformForEmbedded/meta-wpe/tree/master/recipes-graphics/cairo

Quoted 6 lines

* Am quite sure that it breaks cairo-native or dependants (have no logs at hand - it is some time ago)
* Again: I consider this a major change and it was not even mentioned/discussed. To me it has nothing to do with 'mesa: Enable gallium-llvm on x86 and x86_64' - btw: what does that fix?

gallium is for enabling Gallium llvmpipe driver as rasterizer using llvm IR code generator.

Quoted 5 lines

Let's close discussion here - I think after all these years here I am able to find a workaround in case of further issues. Thanks for support.

Andreas

#9 lore raw

Re: [PATCH 1/5] mesa: Enable gallium-llvm on x86 and x86_64

Quoted 58 lines · Khem Raj

Hi Andreas

Quoted 56 lines · Andreas Müller
Quoted 54 lines · Khem Raj

Hi Andreas

Quoted 42 lines · Andreas Müller
Quoted 32 lines · Andreas Müller
Quoted 31 lines · Khem Raj
Quoted 29 lines · Andreas Müller

meta/recipes-graphics/mesa/mesa.inc

Quoted 22 lines · Khem Raj
---
 meta/recipes-graphics/cairo/cairo.inc | 3 ++-
 meta/recipes-graphics/mesa/mesa.inc   | 3 +++
 2 files changed, 5 insertions(+), 1 deletion(-)
meta/recipes-graphics/cairo/cairo.inc +2 -1
index 20e0d2c92a..7347f223ff 100644
@@ -22,7 +22,8 @@ X11DEPENDS = "virtual/libx11 libsm libxrender libxext"
 DEPENDS = "libpng fontconfig pixman glib-2.0 zlib"
 
 PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'x11', 'x11 xcb', '', d)} \
-           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)}"
+           ${@bb.utils.filter('DISTRO_FEATURES', 'directfb', d)} \
+           ${@bb.utils.contains('DISTRO_FEATURES', 'x11 opengl', 'opengl', '', d)}"
 
 PACKAGECONFIG[x11] = "--with-x=yes -enable-xlib,--with-x=no --disable-xlib,${X11DEPENDS}"
 PACKAGECONFIG[xcb] = "--enable-xcb,--disable-xcb,libxcb"
meta/recipes-graphics/mesa/mesa.inc +0 -0
index 5afd0db4b7..dd626d9f00 100644

^ I think this came in accidentaly and it breaks builds when adding packageconfig glesv2:

| configure: error: use either --enable-gl=yes or --enable-glesv2=yes. Not both at the same time.

Quoted 8 lines
Quoted 4 lines

do you remove opengl from DISTRO_FEATURES when enabling glesv2 ? try that out.

Quoted 1 line

Yes of course I can. But this patch is wrong - we don't have gles as distro feature - and it is not even mentioned in commit message why this is done.

Quoted 5 lines

I am tempted to send a revert for the cairo part:

* Cross: It changes defaults valid for long time
* Native: As far as I can remember it causes trouble for cairo-native
* It went through without mentioning

opengl as a DISTRO_FEATURE should tie into packageconfigs, the situation before this patch was not ideal, people got to work with it.

Quoted 8 lines
Quoted 5 lines
Quoted 4 lines

as seen in the example you cited, we can't mix opengl and gles support in packages. other layers have solved your kind of usecase like below

https://github.com/WebPlatformForEmbedded/meta-wpe/blob/master/recipes-graphics/cairo/cairo_%.bbappend

* ^The link is broken

ah see cairo bbappend here
https://github.com/WebPlatformForEmbedded/meta-wpe/tree/master/recipes-graphics/cairo

That is more or less the same I am doing in

https://github.com/schnitzeltony/meta-misc/blob/master/appends-packageconfig/oe-core/cairo_%25.bbappend

So meta-wpe will break from now on when used together with a distro layer enabling opengl in DISTRO_FEATURES - right?

Meanwhile I've checked the native case: It builds fine. To understand why I did:

| bitbake -e cairo | grep ^DISTRO_FEATURES
| <...>
| DISTRO_FEATURES="<...> opengl <...>'
| <...>

and

| bitbake -e cairo-native | grep ^DISTRO_FEATURES
| <...>

DISTRO_FEATURES="ipv6 x11 xattr pulseaudio bluez5
gobject-introspection-data ldconfig"
| <...>

Some magic which I can't find right now, removes opengl from DISTRO_FEATURES => You patch does not break anything.

Maybe you should send some patch to meta-wpe :)

Andreas

#12 lore raw

Re: [PATCH 3/5] gdb: Alias rpl_stat to stat() on musl

In reply to Khem Raj
Quoted 18 lines · Khem Raj

Use CPPFLAGS instead of CFLAGS since there is C++ compiler being used for somefiles

Fixes
gdb/gdbserver/../../../gdb-8.1.1/gdb/gdbserver/../common/common-utils.c:419: undefined reference to `rpl_stat' | collect2: error: ld returned 1 exit status
| make[4]: *** [Makefile:414: libinproctrace.so] Error 1

---
 meta/recipes-devtools/gdb/gdb_8.1.1.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-devtools/gdb/gdb_8.1.1.bb +0 -0
index 84ab08ce93..c6eac84dd8 100644

meta/recipes-devtools/gdb/gdb_8.1.1.bb EOF · line 29

Quoted 5 lines
meta/recipes-devtools/gdb/gdb_8.1.1.bb +1 -1
@@ -26,4 +26,4 @@ EOF
                chmod +x ${WORKDIR}/python
        fi
 }
-CFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday"
+CPPFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday -Drpl_stat=stat"

rpl_stat() is a wrapper for stat, so by forcefully redefining rpl_stat to stat you create a local stat() function which recurses infinitely... which causes obvious runtime problems (e.g. gdbserver crashes on startup).

Simply removing these additional CPPFLAGS fixes the runtime issues for me (and doesn't trigger the original build failure so presumably something has changed since the patch was originally created...).

author
#13 lore raw

Re: [PATCH 3/5] gdb: Alias rpl_stat to stat() on musl

Quoted 30 lines · Andre McCurdy
Quoted 18 lines · Khem Raj

Use CPPFLAGS instead of CFLAGS since there is C++ compiler being used for somefiles

Fixes
gdb/gdbserver/../../../gdb-8.1.1/gdb/gdbserver/../common/common-utils.c:419: undefined reference to `rpl_stat' | collect2: error: ld returned 1 exit status
| make[4]: *** [Makefile:414: libinproctrace.so] Error 1

---
  meta/recipes-devtools/gdb/gdb_8.1.1.bb | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-devtools/gdb/gdb_8.1.1.bb +0 -0
index 84ab08ce93..c6eac84dd8 100644

meta/recipes-devtools/gdb/gdb_8.1.1.bb EOF · line 29

Quoted 5 lines
meta/recipes-devtools/gdb/gdb_8.1.1.bb +1 -1
@@ -26,4 +26,4 @@ EOF
                 chmod +x ${WORKDIR}/python
         fi
  }
-CFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday"
+CPPFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday -Drpl_stat=stat"

rpl_stat() is a wrapper for stat, so by forcefully redefining rpl_stat to stat you create a local stat() function which recurses infinitely... which causes obvious runtime problems (e.g. gdbserver crashes on startup).

Quoted 4 lines

Simply removing these additional CPPFLAGS fixes the runtime issues for me (and doesn't trigger the original build failure so presumably something has changed since the patch was originally created...).

I think setting CPPFLAGS is not right way and we can not fully remove it as well because in this case gnulib does not recognize musl as gnu system and detection logic is wrong for musl. So what we should do is remove the above CPPFLAGS settings and instead pass the cached values to configure

CACHED_CONFIGUREVARS += "gl_cv_func_gettimeofday_clobber=no"

for stat issue it has been fixed [1] so we can just drop it.

[1] https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=3c025cfe5efc44eb4dfb03b53dca28e75096dd1e

care to send a patch ?

Thanks
-Khem

#14 lore raw

Re: [PATCH 3/5] gdb: Alias rpl_stat to stat() on musl

Quoted 43 lines · Khem Raj
Quoted 30 lines · Andre McCurdy
Quoted 18 lines · Khem Raj

Use CPPFLAGS instead of CFLAGS since there is C++ compiler being used for somefiles

Fixes
gdb/gdbserver/../../../gdb-8.1.1/gdb/gdbserver/../common/common-utils.c:419: undefined reference to `rpl_stat' | collect2: error: ld returned 1 exit status
| make[4]: *** [Makefile:414: libinproctrace.so] Error 1

---
  meta/recipes-devtools/gdb/gdb_8.1.1.bb | 2 +-
  1 file changed, 1 insertion(+), 1 deletion(-)
meta/recipes-devtools/gdb/gdb_8.1.1.bb +0 -0
index 84ab08ce93..c6eac84dd8 100644

meta/recipes-devtools/gdb/gdb_8.1.1.bb EOF · line 29

Quoted 5 lines
meta/recipes-devtools/gdb/gdb_8.1.1.bb +1 -1
@@ -26,4 +26,4 @@ EOF
                 chmod +x ${WORKDIR}/python
         fi
  }
-CFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday"
+CPPFLAGS_append_libc-musl = " -Drpl_gettimeofday=gettimeofday -Drpl_stat=stat"

rpl_stat() is a wrapper for stat, so by forcefully redefining rpl_stat to stat you create a local stat() function which recurses infinitely... which causes obvious runtime problems (e.g. gdbserver crashes on startup).

Quoted 4 lines

Simply removing these additional CPPFLAGS fixes the runtime issues for me (and doesn't trigger the original build failure so presumably something has changed since the patch was originally created...).

I think setting CPPFLAGS is not right way and we can not fully remove it as well because in this case gnulib does not recognize musl as gnu system and detection logic is wrong for musl. So what we should do is remove the above CPPFLAGS settings and instead pass the cached values to configure

Quoted 8 lines

CACHED_CONFIGUREVARS += "gl_cv_func_gettimeofday_clobber=no"

for stat issue it has been fixed [1] so we can just drop it.

[1]
https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=3c025cfe5efc44eb4dfb03b53dca28e75096dd1e

care to send a patch ?

Don't really have time right now. For the CACHED_CONFIGUREVARS tweaks you should have a look at the Buildroot solution - it also has similar fixes for strerror() and detection of prfpregset_t. They may be applicable for OE too.