-
Notifications
You must be signed in to change notification settings - Fork 1
Description
Hi,
I'm trying to use SDL2 on a non-GL device. At first I tried to directly enable DFB support in SDL2, however it totally failed due to a series of weird pointer type incompatibility. So I made another try on using this software GL and here I got some other fails.
First I found some dependencies missed like EGL lib and llvm. I don't know the version required, so I just simply installed llvm19 and libgles2-mesa. Then I tried building the project following the INSTALL said.
And this is what I got:
debian@licheervnano-30df:~/SwiftShaderGL-DirectFB$ meson compile -C build/
INFO: autodetecting backend as ninja
INFO: calculating backend command to run: /usr/bin/ninja -C /home/debian/SwiftShaderGL-DirectFB/build
ninja: Entering directory `/home/debian/SwiftShaderGL-DirectFB/build'
[11/108] Compiling C++ object src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o
FAILED: src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o
c++ -Isrc/libEGL.so.1.p -Isrc -I../src -I../src/OpenGL -I/usr/local/include -I/usr/local/include/directfb -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -DEGL_EGLEXT_PROTOTYPES -DEGL_NO_PLATFORM_SPECIFIC_TYPES -DEGL_PLATFORM_DIRECTFB_EXT=0x31DB -DMAJOR_VERSION=4 -DMINOR_VERSION=1 -DDISABLE_DEBUG -Wno-strict-aliasing -Wno-attributes -Wno-ignored-attributes -fPIC -pthread -MD -MQ src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o -MF src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o.d -o src/libEGL.so.1.p/OpenGL_libEGL_Surface.cpp.o -c ../src/OpenGL/libEGL/Surface.cpp
In file included from ../src/Main/FrameBuffer.hpp:18,
from ../src/OpenGL/libEGL/Surface.hpp:20,
from ../src/OpenGL/libEGL/Surface.cpp:15:
../src/Reactor/Reactor.hpp: In member function ‘std::shared_ptr<rr::Routine> rr::Function<Return(Arguments ...)>::operator()(const char*, ...)’:
../src/Reactor/Reactor.hpp:1894:9: error: there are no arguments to ‘vsnprintf’ that depend on a template parameter, so a declaration of ‘vsnprintf’ must be available [-fpermissive]
1894 | vsnprintf(fullName, 1024, name, vararg);
| ^~~~~~~~~
../src/Reactor/Reactor.hpp:1894:9: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
[12/108] Compiling C++ object src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o
FAILED: src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o
c++ -Isrc/libGLESv2.so.2.p -Isrc -I../src -I../src/OpenGL -I/usr/local/include -I/usr/local/include/directfb -I/usr/lib/llvm-19/include -fdiagnostics-color=always -D_GLIBCXX_ASSERTIONS=1 -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -O3 -DEGL_EGLEXT_PROTOTYPES -DEGL_NO_PLATFORM_SPECIFIC_TYPES -DEGL_PLATFORM_DIRECTFB_EXT=0x31DB -DMAJOR_VERSION=4 -DMINOR_VERSION=1 -DDISABLE_DEBUG -Wno-strict-aliasing -Wno-attributes -Wno-ignored-attributes -fPIC -pthread -D_GNU_SOURCE -D__STDC_CONSTANT_MACROS -D__STDC_FORMAT_MACROS -D__STDC_LIMIT_MACROS -MD -MQ src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o -MF src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o.d -o src/libGLESv2.so.2.p/Main_FrameBuffer.cpp.o -c ../src/Main/FrameBuffer.cpp
In file included from ../src/Main/FrameBuffer.hpp:18,
from ../src/Main/FrameBuffer.cpp:15:
../src/Reactor/Reactor.hpp: In member function ‘std::shared_ptr<rr::Routine> rr::Function<Return(Arguments ...)>::operator()(const char*, ...)’:
../src/Reactor/Reactor.hpp:1894:9: error: there are no arguments to ‘vsnprintf’ that depend on a template parameter, so a declaration of ‘vsnprintf’ must be available [-fpermissive]
1894 | vsnprintf(fullName, 1024, name, vararg);
| ^~~~~~~~~
../src/Reactor/Reactor.hpp:1894:9: note: (if you use ‘-fpermissive’, G++ will accept your code, but allowing the use of an undeclared name is deprecated)
../src/Reactor/Reactor.hpp: In instantiation of ‘std::shared_ptr<rr::Routine> rr::Function<Return(Arguments ...)>::operator()(const char*, ...) [with Return = rr::Void; Arguments = {rr::Pointer<rr::Byte>, rr::Pointer<rr::Byte>, rr::Pointer<rr::Byte>}]’:
../src/Main/FrameBuffer.cpp:527:17: required from here
527 | return function("FrameBuffer");
| ~~~~~~~~^~~~~~~~~~~~~~~
../src/Reactor/Reactor.hpp:1894:18: error: ‘vsnprintf’ was not declared in this scope; did you mean ‘vswprintf’?
1894 | vsnprintf(fullName, 1024, name, vararg);
| ~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| vswprintf
ninja: build stopped: subcommand failed.I searched sometime and the web said the header stdio was miss in some sources, though I still have no idea about this.
I'm a truly layman to both GL and DFB, please forgive me if the problem is a foolish.
If there are other methods to run SDL2 on DirectFB2, please tell me and I'd appreciate it!