Igalia / cog

WPE launcher and webapp container
MIT License
238 stars 61 forks source link

Building cog > 0.12.4 for STM32MP1 fails #507

Closed DerArtem closed 1 year ago

DerArtem commented 2 years ago

Hello,

I am unable to build newer releases of cog anymore for the STM32MP1. The function get_drm_fd is already defined in gbm.h. I order to compile I had to renamed the fuction in cog to get_drm_fd_cog.

cog 0.16.0 Building PATH="/home/artem/source/buildroot/output/host/bin:/home/artem/source/buildroot/output/host/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/opt/bin:/usr/lib/llvm/14/bin:/home/artem/bin/repo:/home/artem/go/bin:/home/artem/flutter/bin" PYTHONNOUSERSITE=y /home/artem/source/buildroot/output/host/bin/ninja -j9 -C /home/artem/source/buildroot/output/build/cog-0.16.0//build ninja: Entering directory "/home/artem/source/buildroot/output/build/cog-0.16.0//build" [34/54] Compiling C object platform/drm/libcogplatform-drm.so.p/cog-drm-modeset-renderer.c.o FAILED: platform/drm/libcogplatform-drm.so.p/cog-drm-modeset-renderer.c.o /home/artem/source/buildroot/output/host/bin/arm-none-linux-gnueabihf-gcc -Iplatform/drm/libcogplatform-drm.so.p -Iplatform/drm -I../platform/drm -Icore -I../core -I/home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/wpe-webkit-1.1 -I/home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0 -I/home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/lib/glib-2.0/include -I/home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include -I/home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libsoup-3.0 -I/home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/wpe-1.0 -I/home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/wpe-fdo-1.0 -I/home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/libdrm -fvisibility=hidden -fdiagnostics-color=always -DNDEBUG -pipe -Wall -Winvalid-pch -std=c99 -O3 -DCOG_INSIDE_COG__=1 -DCOG_USE_SOUP2=0 -D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -Os -fPIC -pthread -DWPE_ENABLE_XKB=1 '-DG_LOG_DOMAIN="Cog-DRM"' -MD -MQ platform/drm/libcogplatform-drm.so.p/cog-drm-modeset-renderer.c.o -MF platform/drm/libcogplatform-drm.so.p/cog-drm-modeset-renderer.c.o.d -o platform/drm/libcogplatform-drm.so.p/cog-drm-modeset-renderer.c.o -c ../platform/drm/cog-drm-modeset-renderer.c ../platform/drm/cog-drm-modeset-renderer.c:110:1: error: conflicting types for ‘get_drm_fd’ 110 get_drm_fd(CogDrmModesetRenderer *self) ^~~~~~ In file included from ../platform/drm/cog-drm-modeset-renderer.c:11: /home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/gbm.h:246:1: note: previous declaration of ‘get_drm_fd’ was here 246 get_drm_fd(void); ^~~~~~ [41/54] Compiling C object platform/drm/libcogplatform-drm.so.p/cog-platform-drm.c.o In file included from /home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/glib.h:62, from ../platform/drm/../../core/cog-webkit-utils.h:17, from ../platform/drm/../../core/cog-request-handler.h:15, from ../platform/drm/../../core/cog-directory-files-handler.h:15, from ../platform/drm/../../core/cog.h:16, from ../platform/drm/cog-platform-drm.c:9: ../platform/drm/cog-platform-drm.c: In function ‘init_drm’: ../platform/drm/cog-platform-drm.c:492:13: warning: format ‘%ld’ expects argument of type ‘long int’, but argument 4 has type ‘unsigned int’ [-Wformat=] 492 g_debug("init_drm: using mode [%ld] '%s' @ %dHz", ^~~~~~~~~~~~ 493 (drm_data.mode - drm_data.connector.obj->modes) / sizeof(drmModeModeInfo *), drm_data.mode->name, ~~~~~~~~~~~~~~~
unsigned int
/home/artem/source/buildroot/output/host/arm-buildroot-linux-gnueabihf/sysroot/usr/include/glib-2.0/glib/gmessages.h:354:32: note: in definition of macro ‘g_debug’ 354 __VA_ARGS__) ^~~ ../platform/drm/cog-platform-drm.c:492:38: note: format string is defined here 492 g_debug("init_drm: using mode [%ld] '%s' @ %dHz", ~~^
long int
%d

[42/54] Compiling C object platform/wayland/libcogplatform-wl.so.p/cog-platform-wl.c.o ninja: build stopped: subcommand failed. make: *** [package/pkg-generic.mk:250: /home/artem/source/buildroot/output/build/cog-0.16.0/.stamp_built] Error 1

ceyusa commented 2 years ago

What version of libgbm are you using?

It's odd that gbm.h exports the unpreffixed symbol get_drm_fd

DerArtem commented 1 year ago

It the libgbm of stm32mp1 gcnano-binaries

ceyusa commented 1 year ago

in my opinion this issue is rather a bug for the library maintainers.

philn commented 1 year ago

in my opinion this issue is rather a bug for the library maintainers.

Closing then ;)