gnif / LookingGlass

An extremely low latency KVMFR (KVM FrameRelay) implementation for guests with VGA PCI Passthrough.
GNU General Public License v2.0
4.66k stars 257 forks source link

Compiling client fails with EGL type error on Ubuntu impish #941

Closed compucat closed 2 years ago

compucat commented 2 years ago

Compiling the client fails on Ubuntu impish; cmake detects all dependencies fine, but make fails with error: unknown type name 'PFNEGLGETPLATFORMDISPLAYPROC'.

System info: Ubuntu impish, up to date as of today. Build originally tested with oibaf's upstream Mesa drivers installed; removing those had no effect.

Reinstalling all dependencies had no effect.

Issue occurs when building both B5.0.1 from source tarball and master. Building old copies of B4 and B2 works just fine.

cmake log: https://mystb.in/WhichMuslimApplies.lua

make log: https://mystb.in/UsuallyAnnaClosely.csharp

I attempted to bisect the issue, but ran into other issues (missing spice/spice.h? likely unrelated) when compiling other commits between B4 and master. git bisect returns commit c9d469fb911234b1f3fe9a90157d95327eee0e93 as the first bad commit, but I'm not sure if that's accurate.

Building master on another machine running Linux Mint 20.3 (based off of Ubuntu focal) almost works fine - PipeWire support must be disabled there, but everything else works with nothing special done.

gnif commented 2 years ago

A bisect wont help here, it seems that the type define for PFNEGLGETPLATFORMDISPLAYPROC has been moved/removed in impish. This typedef is normally in /usr/include/EGL/egl.h, can you please run grep -r PFNEGLGETPLATFORMDISPLAYPROC /usr/include/EGL/* and post the results here.

compucat commented 2 years ago

Only gets me a single hit, exactly where we expected it to be: /usr/include/EGL/egl.h:typedef EGLDisplay (EGLAPIENTRYP PFNEGLGETPLATFORMDISPLAYPROC) (EGLenum platform, void *native_display, const EGLAttrib *attrib_list);

Running on my impish system and the Mint (focal) system returns the same thing.

Doesn't look like that's actually being defined though...pardon me, I'm rusty with advanced typedefs.

gnif commented 2 years ago

Please run make src/app.c.i and post the file it generates (CMakeFiles/looking-glass-client.dir/src/app.c.i) Note this file will be quite large, you may need to use a service like pastebin

compucat commented 2 years ago

As requested: https://paste.ubuntu.com/p/vkTWYwGrd9/

gnif commented 2 years ago

Please use a service that doesn't force me to register an account

compucat commented 2 years ago

Bah, sorry - didn't realize Ubuntu's paste service requires a login. Too big for Pastebin, either - lol!

Let's try my own webserver this time. :) https://westen.compucat.me/app.c.i

gnif commented 2 years ago

You have a local non-system package maintained install of the EGL headers at /usr/local/include/EGL/egl.h which is missing this typedef which is taking priority.

compucat commented 2 years ago

Baffling! Now I'm wondering how those got there in the first place...

Removing those fixes this issue. Thanks for helping me rule this out - apologies for making a Git issue over what turned out to be a machine-specific thing.

gnif commented 2 years ago

no worries.