Steam Link

Steam Link

gcc 9.2.0 now available
The Steam Link SDK has been updated with gcc 9.2.0, which is available in Steam Link firmware build 750 and newer.
< >
Showing 1-15 of 16 comments
This is good I think. Is it recommended to rebuild everything? Is there an expected performance gain or is this for future proofing?

And I've been slacking on thanking you for the work you do. Thank you for helping the community.

Off topic I've been struggling to build qt 5.14, any pointers? I'll play with it again this weekend.
Originally posted by garbalen:
This is good I think. Is it recommended to rebuild everything? Is there an expected performance gain or is this for future proofing?

And I've been slacking on thanking you for the work you do. Thank you for helping the community.

Off topic I've been struggling to build qt 5.14, any pointers? I'll play with it again this weekend.

It's for ease of building newer code, like Qt. I've successfully built Qt 5.14.1, and it's shipping with build 750. Is there something in particular you're wanting?
Not yet. Get some sleep or have a party. I'll probably have a list tomorrow or Sunday. I need to redo my sdk and did get to the compiler errors. Might just work now.

Edit: Was complaining about needing 11 so I replaced ever make with -std C++11 but still said I needed 11 (we have 14+ here already. It's not knocking the version)
Originally posted by garbalen:
Was complaining about needing 11 so I replaced ever make with -std C++11 but still said I needed 11

Make sure you’ve updated to the new SDK and $CC --version shows 9.2.0. That was one of the reasons I upgraded the compiler.

Also, why do you want to compile Qt yourself? It’s already included with the latest Steam Link build. I did get the webengine module compiled, but it requires EGL features not available on the Steam Link hardware. Is there something else you want that isn’t in build 750, or are you just doing it for fun?
There's other dependancies for some of the stuff. I want to build QT static so that I can just stick garbage into the SDK and make static stuff. For fun is the short answer. Being ignorant is the other short answer. I'm learning compilers and got a few things working as static that shouldn't normally work as a shared library. I don't want to ask for inclusion because I'm not really doing any development.

TLDR; I just grab stuff as I error on compile from blahblah armhf debian and overwrite stuff in the SDK. I finally figured out the difference in file types between static and shared, and started compiling libraries as static for myself. I don't really have a goal.

Edit: Building all static lets me get something like the latest version of FFMPEG and other dependencies into a build for something like Musique. I'm not overly confident I can ever get it to work, so I don't want to put in requests for pieces that might never get used.
Running into issues with the new GCC. "libmpfr.so.4: cannot open shared object file: No such file or directory"
"Cannot proceeded without a working compiler"

I just grabbed the updated SDK and tried a few of the examples.

Retroarch and OpenTyrian had the same error, but Caveexpress went through without issue.
It looks like Build 750 introduced an ABI break that causes Moonlight to fail to start due to a missing symbol. Moonlight was compiled with steamlink-sdk commit 9181b082be53c64daa83f36c7093a783fd07b464. It previously worked with Build 749.

./bin/moonlight: relocation error: ./bin/moonlight: symbol _ZnwjRKSt9nothrow_t, version Qt_5 not defined in file libQt5Core.so.5 with link time reference

Reported as https://github.com/moonlight-stream/moonlight-qt/issues/340
Originally posted by aicom:
It looks like Build 750 introduced an ABI break that causes Moonlight to fail to start due to a missing symbol. Moonlight was compiled with steamlink-sdk commit 9181b082be53c64daa83f36c7093a783fd07b464. It previously worked with Build 749.

./bin/moonlight: relocation error: ./bin/moonlight: symbol _ZnwjRKSt9nothrow_t, version Qt_5 not defined in file libQt5Core.so.5 with link time reference

Reported as https://github.com/moonlight-stream/moonlight-qt/issues/340

Yes, Moonlight should be recompiled for the latest Qt.
Originally posted by slouken:
Yes, Moonlight should be recompiled for the latest Qt.

Hmm, that's not ideal. Steam Link apps compiled against 5.9 won't work on build 750 or later, and Steam Link apps compiled against 5.14 don't work on build 747 or earlier. That means we're stuck doing a flag day where both Steam Link firmware and Qt apps must be updated together. If they aren't updated together, Qt apps will silently fail to launch.

I was planning to continue shipping builds linked against Qt 5.9 until Steam Link Build 750+ has been in production for a little while to ensure all users are updated before breaking compatibility with build 747 and earlier, but that won't work if the Qt 5.9 builds are not ABI compatible with Qt 5.14.

If we have to do this flag day style, can we get a date when the new Steam Link firmware will leave beta so we can have new Qt app builds ready?
Originally posted by aicom:
Originally posted by slouken:
Yes, Moonlight should be recompiled for the latest Qt.

Hmm, that's not ideal. Steam Link apps compiled against 5.9 won't work on build 750 or later, and Steam Link apps compiled against 5.14 don't work on build 747 or earlier. That means we're stuck doing a flag day where both Steam Link firmware and Qt apps must be updated together. If they aren't updated together, Qt apps will silently fail to launch.

I was planning to continue shipping builds linked against Qt 5.9 until Steam Link Build 750+ has been in production for a little while to ensure all users are updated before breaking compatibility with build 747 and earlier, but that won't work if the Qt 5.9 builds are not ABI compatible with Qt 5.14.

If we have to do this flag day style, can we get a date when the new Steam Link firmware will leave beta so we can have new Qt app builds ready?

Sure.

The current beta build seems stable for customers, so let’s flip it to public early next week.
Originally posted by slouken:
Sure.

The current beta build seems stable for customers, so let’s flip it to public early next week.

Thanks. I released a new build of Moonlight today which contains a binary linked against Qt 5.9 and one linked against Qt 5.14, and the launch script chooses the correct one to run based on which Qt libraries are found. That will allow users to update to build 750+ without breakage (as long as they update Moonlight first).
Running into issues with the new GCC. "libmpfr.so.4: cannot open shared object file: No such file or directory"
"Cannot proceeded without a working compiler"

I tried to get around it, but it's a problem for me.
Originally posted by garbalen:
Running into issues with the new GCC. "libmpfr.so.4: cannot open shared object file: No such file or directory"
"Cannot proceeded without a working compiler"

I tried to get around it, but it's a problem for me.

Do you have a simple test case?
armv7a-cros-linux-gnueabi-gcc --sysroot=/home/default/back-sdk/rootfs -Wl,-rpath-link,/home/default/back-sdk/rootfs/lib -Wl,-rpath-link,/home/default/back-sdk/rootfs/usr/lib -Wl,-rpath-link,/home/default/back-sdk/rootfs/usr/lib/arm-linux-gnueabihf -DTARGET_STEAMLINK -DTYRIAN_DIR='""' -DWITH_NETWORK -DHG_REV='"24df4a4651f7+ sdl2"' -D_REENTRANT -I/home/default/back-sdk/rootfs/usr/include/SDL2 -DNDEBUG -std=iso9899:1999 -pedantic -MMD -Wall -Wextra -Wno-missing-field-initializers -O2 -c -o obj/palette.o src/palette.c
/home/default/back-sdk/toolchain/bin/../libexec/gcc/armv7a-cros-linux-gnueabi/9.2.0/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory
Makefile:135: recipe for target 'obj/palette.o' failed
make: *** [obj/palette.o] Error 1

Just grabbing the SDK and trying Open Tyrian or Retroarch script. I tried some of my other projects with the same issue and only got Cave Express to build.
Originally posted by garbalen:
armv7a-cros-linux-gnueabi-gcc --sysroot=/home/default/back-sdk/rootfs -Wl,-rpath-link,/home/default/back-sdk/rootfs/lib -Wl,-rpath-link,/home/default/back-sdk/rootfs/usr/lib -Wl,-rpath-link,/home/default/back-sdk/rootfs/usr/lib/arm-linux-gnueabihf -DTARGET_STEAMLINK -DTYRIAN_DIR='""' -DWITH_NETWORK -DHG_REV='"24df4a4651f7+ sdl2"' -D_REENTRANT -I/home/default/back-sdk/rootfs/usr/include/SDL2 -DNDEBUG -std=iso9899:1999 -pedantic -MMD -Wall -Wextra -Wno-missing-field-initializers -O2 -c -o obj/palette.o src/palette.c
/home/default/back-sdk/toolchain/bin/../libexec/gcc/armv7a-cros-linux-gnueabi/9.2.0/cc1: error while loading shared libraries: libmpfr.so.4: cannot open shared object file: No such file or directory
Makefile:135: recipe for target 'obj/palette.o' failed
make: *** [obj/palette.o] Error 1

Just grabbing the SDK and trying Open Tyrian or Retroarch script. I tried some of my other projects with the same issue and only got Cave Express to build.

Oh, this is a host side dependency. You need to install libmpfr.so.4.
< >
Showing 1-15 of 16 comments
Per page: 1530 50