libretro / Lakka-LibreELEC

Lakka is a lightweight Linux distribution that transforms a small computer into a full blown game console.
https://www.lakka.tv
1.75k stars 289 forks source link

Lakka 5x : Build fail on GPICase.arm/Pi02GPi.arm (2023-09-14_5.x) #1880

Closed ShigeakiAsai closed 11 months ago

ShigeakiAsai commented 1 year ago

I report about build fail about Lakka 5x GPICase.arm (2023-09-14_5.x).

GPICase build fail happens on yabasanshiro core. But this fail is may coused by environment. Because RPi.arm was finished on same build.

I think it would be better to exclude yabasanshiro core or check build environment (OpenGL ES support) on GPICase.arm.
About build log, there are difference on environment (Graphic configuration) between GPICase.arm and RPi.arm.

RPi.arm build log : Graphic configuration:

GPICase.arm build log : Graphic configuration:

GPICase.arm build fail place:

/mnt/data/lakkabuildbot/nightly/Lakka-devel/build.Lakka-GPICase.arm-5.0-devel/toolchain/bin/armv6zk-libreelec-linux-gnueabihf-gcc -c -o ../vidogl.c.o ../vidogl.c -march=armv6zk -mtune=arm1176jzf-s -mabi=aapcs-linux -Wno-psabi -Wa,-mno-warn-deprecated -mfloat-abi=hard -mfpu=vfp -Wall -pipe -O2 -fomit-frame-pointer -DNDEBUG -marm -DARM -DGIT_VERSION=\"" 7513c84"\" -DLIBRETRO -DHAVE_LIBGL -DVERSION=\"3.4.2\" -DHAVE_LROUND -D_7ZIP_ST -DFLAC__HAS_OGG=0 -DFLAC__NO_DLL -DNO_CLI -DHAVE_BUILTIN_BSWAP16=1 -DHAVE_BUILTIN_BSWAP32=1 -DHAVE_C99_VARIADIC_MACROS=1 -DHAVE_FLOORF=1 -DHAVE_GETTIMEOFDAY=1 -DHAVE_STDINT_H=1 -DHAVE_SYS_TIME_H=1 -DIMPROVED_SAVESTATES -DPACKAGE_VERSION=\"1.3.3\" -DARCH_IS_LINUX=1 -DDYNAREC_DEVMIYAX=1 -ffast-math -DHAVE_GLSYM_PRIVATE -DHAVE_SYS_PARAM_H -DHAVE_MUSASHI=1 -DOGLES3 -DHAVE_OPENGLES -DHAVE_OPENGLES3 -O3 -DNDEBUG -fno-tree-tail-merge -fPIC -I. -I./.. -I./libretro-common/include -I./../musashi -I./../libchdr/include -I./../libchdr/deps/lzma-19.00/include -I./../libchdr/deps/flac-1.3.3/include -I./../libchdr/deps/flac-1.3.3/src/include -I./../libchdr/deps/zlib-1.2.11 -std=gnu11 In file included from ./libretro-common/include/glsym/rglgen.h:32, from ./libretro-common/include/glsym/glsym.h:26, from ../ygl.h:49, from ../yglcache.c:42: ./libretro-common/include/glsym/rglgen_headers.h:57:10: fatal error: GLES3/gl3.h: No such file or directory 57 | #include <GLES3/gl3.h> | ^~~~~ compilation terminated.

P.S.
Sorry for my no-good layout report.
Thanks. ASAI, Shigeaki

ShigeakiAsai commented 1 year ago

Also, build fail on Lakka 5x Pi02GPi.arm (2023-09-14_5.x) was same reason. I change the issue title (add Pi02GPi.arm).

Now I am trying fix about this issue.(exclude yabasanshiro core on GPI Case.arm/Pi02GPi.arm)

ShigeakiAsai commented 1 year ago

Currently I'm checking my modification, but the other problem is happened.

Build fail was happened at chailove core on Pi/GPI Case/Pi02GPi project without my modification. This build fail reason is chailove component can't get from gitlab.com. (chailove refers to https://gitlab.com/grumbel/SDL_tty.git,)

It may be gitlab trouble, so I'm waiting a moment resolve this.

ShigeakiAsai commented 1 year ago

Note: chailove build fail was fixed by "chailove : update #1883" (639a3074e6b6a1c7070c2e04117a1edc8ae22c15). And I confirmed that it was fixed.

I will report about this issue.

Thanks. ASAI, Shigeaki

ShigeakiAsai commented 1 year ago

Dear Lakka team

I would like to suggest about this issue that the yabasanshiro core is excluded on building GPICase and Pi02GPi devices.

The reason is bellow.

In GPICase and Pi02GPi device, both use OPENGLES="bcm2835-driver"in device options file.

bcm2835-driver copies related header files to toolchain during building. But GLES 3.0 header files are not included in these header files. Because bcm2835 supports only GLES 2.0 I think.

On the other hand, the yabasanshiro core refers GLES 3.0 header files.

Therefore, GPICase and Pi02GPi building are failed.

By the way, RPi.arm device excludes the yabasanshiro core.

Just like RPi.arm device, it's better to exclude yabasanshiro core on both devices I think.

P.S. I prepare pull request now.

Sorry for my strange English. ASAI, Shigeaki

ShigeakiAsai commented 11 months ago

I think Pull Request #1884 was something noisy. I hope Lakka team fix this issue please.

Thanks, ASAI, Shigeaki

ShigeakiAsai commented 11 months ago

According to Libretro Docs - Sega - Saturn (Yabause) https://docs.libretro.com/library/yabasanshiro/ .

Background YabaSanshiro is a fork of Yabause. It requires OpenGL 3.3 or OpenGL ES 3.0.

Pi4 supports OpenGL ES 3.1, but Pi 1,2,3,Zero,Zero2 support OpenGL ES 2.0 only. Therefore, YabaSanshiro works on Pi4 or later and does not work Pi3 and before. About this, I asked developper devmiyax.

I think it will better that YabaSanshiro core is excluded in device=RPi/RPi2/RPi3/GPICase/Pi02GPi.

Thanks, ASAI, Shigeaki

ShigeakiAsai commented 11 months ago

This issue was fixed. (Commit:57f5502e8257fe8582a988392653f1c4e5e685ea)

I confirmed it on my build environment. (with temporarily RetroArch build is exclude)

I will close this issue after I confirm nightly build result.

Thanks, ASAI, Shigeaki

ShigeakiAsai commented 11 months ago

Close.

Because, This issue is for build fail of yabasanshiro core on GPICase.arm/Pi02GPi.arm. It is fixed already by commit "Dont build yabasanshiro for unsupported gles2 boards".(https://github.com/libretro/Lakka-LibreELEC/commit/57f5502e8257fe8582a988392653f1c4e5e685ea)

Therefore, I close this issue

Note: A build fail is still occurred on GPICase.arm/Pi02GPi.arm. But, it is due to another cause (Retroarch).

Thanks, ASAI, Shigeaki