Retroarch: Compilation failed on Raspberry Pi Zero

Created on 3 Feb 2019  Â·  13Comments  Â·  Source: libretro/RetroArch

gfx/video_crt_switch.c:32:68: fatal error: ../include/userland/interface/vmcs_host/vc_vchi_gencmd.h: No such file or directory

compilation terminated.
Makefile:199: recipe for target 'obj-unix/release/gfx/video_crt_switch.o' failed
make: *** [obj-unix/release/gfx/video_crt_switch.o] Error 1

Configured with:

./configure --disable-sdl --disable-sdl2 --disable-oss --disable-al --disable-jack --disable-qt --disable-dispmanx --enable-opengl --enable-opengles --disable-kms --disable-x11 --disable-pulse --disable-vg --disable-ssl --enable-zlib --enable-freetype --disable-ffmpeg --disable-cg --disable-vulkan --disable-rsound --disable-wayland

  • RetroArch: 1.7.5/latest git clone

Environment information

  • OS: Raspbian Stretch Lite

All 13 comments

Can you please bisect this and find the first bad commit?

Actually can you please test this patch?

diff --git a/gfx/video_crt_switch.c b/gfx/video_crt_switch.c
index 88f7602d5a..18b8cdbcf2 100644
--- a/gfx/video_crt_switch.c
+++ b/gfx/video_crt_switch.c
@@ -29,7 +29,7 @@
 #endif

 #if defined(HAVE_VIDEOCORE)
-#include "../include/userland/interface/vmcs_host/vc_vchi_gencmd.h"
+#include "include/userland/interface/vmcs_host/vc_vchi_gencmd.h"^M
 #endif

 static unsigned ra_core_width     = 0;

@Toberto-El Please let us know if this works for you now.

With the fix above, it still fails:

/usr/bin/gcc  -O3  -ffast-math -DHAVE_FILE_LOGGER -DHAVE_SHADERPIPELINE -I./libretro-common/include -I./deps -DHAVE_NETPLAYDISCOVERY -DHAVE_DR_MP3 -I./deps/7zip -DHAVE_DR_FLAC -DHAVE_FLAC -I./deps/libFLAC/include -I./libretro-common/formats/libchdr -Wall -I/opt/vc/include -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I./deps/7zip -I. -Ideps -Ideps/stb -std=gnu99 -D_GNU_SOURCE -Wno-unused-result -Wno-unused-variable -DHAVE_CONFIG_H -DRARCH_INTERNAL -D_FILE_OFFSET_BITS=64 -DGLOBAL_CONFIG_DIR='"/etc"' -DHAVE_HID -DHAVE_LIBRETRODB -DHAVE_DYLIB -DHAVE_GIT_VERSION -DGIT_VERSION=5bab7e4460 -DHAVE_DR_MP3 -DHAVE_RUNAHEAD -DHAVE_CC_RESAMPLER -DHAVE_LANGEXTRA -finput-charset=UTF-8 -DHAVE_IMAGEVIEWER -DHAVE_COMMAND -DHAVE_STDIN_CMD -I/usr/include/alsa -DHAVE_TINYALSA -DHAVE_MENU -DHAVE_RGUI -DHAVE_MATERIALUI -DHAVE_XMB -DHAVE_OZONE -DHAVE_OVERLAY -DHAVE_STB_FONT -I/usr/include/freetype2 -DHAVE_THREADS -DHAVE_THREAD_STORAGE    -DHAVE_LIBUSB -DHAVE_HID -DHAVE_OPENGL -DHAVE_GLSL   -DHAVE_OPENGLES -DHAVE_OPENGLES2 -DHAVE_EGL  -DUSE_VCHIQ_ARM -D_REENTRANT -I/usr/include/SDL2 -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/vcos/pthreads  -DHAVE_7ZIP -D_7ZIP_ST -DHAVE_IBXM -DHAVE_DR_FLAC -I./deps -DHAVE_STDINT_H -DHAVE_LROUND -DFLAC__HAS_OGG=0 -DFLAC_PACKAGE_VERSION="\"retroarch\"" -DHAVE_ZLIB -DHAVE_CHD -DWANT_SUBCODE -DWANT_RAW_DATA_SECTOR -DHAVE_RTGA -DHAVE_RPNG -DHAVE_RJPEG -DHAVE_RBMP -DHAVE_COMPRESSION -DHAVE_EASTEREGG -DHAVE_NETWORKING -DHAVE_NETWORK_CMD -DHAVE_CHEEVOS -DHAVE_DISCORD -Ideps/discord-rpc/include/ -Ideps/discord-rpc/thirdparty/rapidjson-1.1.0/include/ -DHAVE_MINIUPNPC -DHAVE_BUILTINMINIUPNPC -DMINIUPNPC_SET_SOCKET_TIMEOUT -DMINIUPNPC_GET_SRC_ADDR -I./deps -DHAVE_COMPRESSION -MMD -c -o obj-unix/release/gfx/video_crt_switch.o gfx/video_crt_switch.c

gfx/video_crt_switch.c:32:68: fatal error: ../include/userland/interface/vmcs_host/vc_vchi_gencmd.h: No such file or directory

Replacing with

#if defined(HAVE_VIDEOCORE)
#include "./include/userland/interface/vmcs_host/vc_vchi_gencmd.h"
#endif

passes the include error, but fails with

gfx/video_crt_switch.c: In function ‘switch_res_crt’:
gfx/video_crt_switch.c:101:4: warning: implicit declaration of function ‘crt_rpi_switch’ [-Wimplicit-function-declaration]
    crt_rpi_switch(width, height, ra_core_hz);
    ^~~~~~~~~~~~~~
gfx/video_crt_switch.c: At top level:
gfx/video_crt_switch.c:228:13: warning: conflicting types for ‘crt_rpi_switch’
 static void crt_rpi_switch(int width, int height, float hz)
             ^~~~~~~~~~~~~~
gfx/video_crt_switch.c:228:13: error: static declaration of ‘crt_rpi_switch’ follows non-static declaration
gfx/video_crt_switch.c:101:4: note: previous implicit declaration of ‘crt_rpi_switch’ was here
    crt_rpi_switch(width, height, ra_core_hz);
    ^~~~~~~~~~~~~~
gfx/video_crt_switch.c: In function ‘crt_rpi_switch’:
gfx/video_crt_switch.c:334:37: error: ‘set_hdmi_timings’ undeclared (first use in this function)
    snprintf(set_hdmi_timing, sizeof(set_hdmi_timings),
                                     ^~~~~~~~~~~~~~~~
gfx/video_crt_switch.c:334:37: note: each undeclared identifier is reported only once for each function it appears in
At top level:
gfx/video_crt_switch.c:228:13: warning: ‘crt_rpi_switch’ defined but not used [-Wunused-function]
 static void crt_rpi_switch(int width, int height, float hz)
             ^~~~~~~~~~~~~~

Fixing the gfx/video_crt_switch.c:334 error (set_hdmi_timings -> set_hdmi_timing), still leaves the other error present.

Tested on a PI3 (Raspbian Stretch Lite) with latest updates.

It still fails (Tested on rpi0)

gfx/video_crt_switch.c: In function ‘switch_res_crt’:
gfx/video_crt_switch.c:101:4: warning: implicit declaration of function ‘crt_rpi_switch’ [-Wimplicit-function-declaration]
    crt_rpi_switch(width, height, ra_core_hz);
    ^~~~~~~~~~~~~~
gfx/video_crt_switch.c: At top level:
gfx/video_crt_switch.c:228:13: warning: conflicting types for ‘crt_rpi_switch’
 static void crt_rpi_switch(int width, int height, float hz)
             ^~~~~~~~~~~~~~
gfx/video_crt_switch.c:228:13: error: static declaration of ‘crt_rpi_switch’ follows non-static declaration
gfx/video_crt_switch.c:101:4: note: previous implicit declaration of ‘crt_rpi_switch’ was here
    crt_rpi_switch(width, height, ra_core_hz);
    ^~~~~~~~~~~~~~
gfx/video_crt_switch.c: In function ‘crt_rpi_switch’:
gfx/video_crt_switch.c:334:37: error: ‘set_hdmi_timings’ undeclared (first use in this function)
    snprintf(set_hdmi_timing, sizeof(set_hdmi_timings),
                                     ^~~~~~~~~~~~~~~~
gfx/video_crt_switch.c:334:37: note: each undeclared identifier is reported only once for each function it appears in
At top level:
gfx/video_crt_switch.c:228:13: warning: ‘crt_rpi_switch’ defined but not used [-Wunused-function]
 static void crt_rpi_switch(int width, int height, float hz)
             ^~~~~~~~~~~~~~
Makefile:199: recipe for target 'obj-unix/release/gfx/video_crt_switch.o' failed
make: *** [obj-unix/release/gfx/video_crt_switch.o] Error 1

Maybe started in commit 76bf63f905962441dd165b89dc96e4bebf7d0564.

@alphanu1 Any ideas?

In commit 76bf63f:

gfx/video_crt_switch.c:28:68: fatal error: include/userland/interface/vmcs_host/vc_vchi_gencmd.h: No such file or directory

                                                                    ^
compilation terminated.
Makefile:198: recipe for target 'obj-unix/release/gfx/video_crt_switch.o' failed
make: *** [obj-unix/release/gfx/video_crt_switch.o] Error 1

Commit > 5302a1e

passed gfx/video_crt_swith.c

Commit > 81bca39

passed gfx/video_crt_swith.c

So this broke in PR? https://github.com/alphanu1/MME4CRT/pull/97~~ https://github.com/libretro/RetroArch/pull/8132

It also changed all the line endings making the PR impossible to review...does it work again if you revert it?

Ok, after commit a58a324 it passes video_crt_switch.c

I'll test the build after compiling

Sorry I did not see this earlier guys.

Seems like you have it sorted though. Part of the issue was changing sprinf to snprintf. Seems like a like a typo.

The include was missed on my behalf. Before the comit I moved the userland include from gfx/drivers to the include folder. I should have double check the compile.

Sorry to have caused this issue.

Was this page helpful?
0 / 5 - 0 ratings