Open ilyakurdyukov opened 2 months ago
Support was added by a contributor 4 years ago: https://github.com/obsproject/obs-studio/pull/3288
Probably worth just dropping support at this point, but unlikely to be something we fix ourselves as we don't have access to any e2k machines.
Feel free to open a PR to remove the problematic code.
@makise-homura Not sure if you're still participating on github all that much, but if you're around it seems that e2k isn't currently compiling.
@ilyakurdyukov It's one thing to say "There's a bug in this code" or "this code is incorrect", and maybe I would have even been fine with "buggy code", but saying "poorly written" is unnecessary wording that goes beyond that, don't you think? It was kind enough that a contributor came around to advocate for and add support for e2k, so I don't see the point of adding unnecessary wording such as "poorly written" other than to be abrasive. Please kindly keep such abrasive and unnecessary wording out of our repository, and keep things constructive as per our conduct guidelines. We try to work together, not against one another.
Anyway, you're saying to remove it, but whether we remove it or not, it's not like anything will change for people who use e2k anyway if it were removed. If it's not currently compiling then it still won't compile anyway. So I'm not sure why you even made this issue report. Probably would have been better to just to ignore it at that point and move on from.
@makise-homura, please fix this.
This breaks cmake-3.28.3
very badly. I disabled this code and don't see any of the warnings listed, so not only is it broken, but it's no longer needed.
I successfully built the obs-studio
using these hacks:
sed -i '/MATCHES "e2k"/c if(false)' cmake/Modules/CompilerConfig.cmake
%add_optflags -DSIMDE_ARCH_AMD64=1000 -mno-sse4.2
The only spam warning in the log:
lcc: "/usr/src/RPM/BUILD/obs-studio-30.1.2/libobs/graphics/../util/simde/x86/sse2.h", line 5427: warning #1675:
unrecognized GCC pragma [-Wunknown-pragmas]
SIMDE_VECTORIZE
^
This warning appeared 3419 times during the build.
@ilyakurdyukov Wow, what a backfire from the old days when CMake did not support e2k.
Still I have everything compiled well, but with a lot of warnings. I checked only legacy build for now, in a few days I'll try to check new build system. I'm working on it in e2k-fixes
branch in my fork, after it's done, I'm gonna make a PR for updating e2k support in OBS.
-DENABLE_PIPEWIRE=OFF
: Old libpipewire
-DENABLE_QSV11=OFF
: No libvpl
-DENABLE_BROWSER=OFF
: No CEF binary-DENABLE_WEBSOCKET=OFF
: No qrcodegencpp
-DENABLE_NEW_MPEGTS_OUTPUT=OFF
: No libsrt
and librist
-DENABLE_NATIVE_NVENC=OFF
: No FFnvcodec-DENABLE_AJA=OFF
: No libajantv2
-DENABLE_WEBRTC=OFF
: No libdatachannel
As a result, everything is buildable, but there are one -Wdeprecated-declarations
warning in ffmpeg-mux.c
, and a lot of -Wenum-conversion
, -Wunused-parameter
, -Wsign-compare
, -Wincompatible-pointer-types
, -Wint-conversion
, -Wextra
, -Wmaybe-uninitialized
warnings in ftl-sdk
. I'm considering this as expected behavior.
-DENABLE_WAYLAND=OFF
: No Wayland-DENABLE_PIPEWIRE=OFF
: No libpipewire
-DENABLE_VST=OFF
: No Qt6 (required by plugins/obs-vst
)-DENABLE_QSV11=OFF
: No libvpl
-DENABLE_BROWSER=OFF
: No CEF-DENABLE_WEBSOCKET=OFF
: No Qt6 (required by plugins/obs-websocket
)-DENABLE_NEW_MPEGTS_OUTPUT=OFF
: No libsrt
and librist
-DENABLE_NATIVE_NVENC=OFF
: No FFnvcodec-DENABLE_AJA=OFF
: No libajantv2
-DENABLE_WEBRTC=OFF
: No libdatachannel
-DENABLE_DECKLINK=OFF
: No Qt6 (required by UI/frontend-plugins/decklink-captions
)-DENABLE_UI=OFF
: No Qt6 (required by UI/frontend-plugins/frontend-tools
)Everything seem to be the same, no extra warnings more than those on Debian.
-DENABLE_QSV11=OFF
: No libvpl
-DENABLE_BROWSER=OFF
: No CEF-DENABLE_WEBSOCKET=OFF
: No qrcodegencpp
version info-DENABLE_NEW_MPEGTS_OUTPUT=OFF
: No librist
-DENABLE_AJA=OFF
: No libajantv2
-DENABLE_WEBRTC=OFF
: No libdatachannel
-DENABLE_UI=OFF
: No There are a lot of warnings like this:
lcc: Command-line warning #1819: "..." was specified as both a system and non-system include directory -- the non-system entry will be ignored
I'm not sure I can do anything with this, as it seems to be some weird behavior in lcc itself.
At least from my fork, it's buildable on current OSL. Not sure about new build system, gonna check it in a few days.
@Fenrirthviti
we don't have access to any e2k machines.
If you wish, you may easily get access to e2k machines here. Two of these machines, yukari
(OS Elbrus) and mamizou
(Alt Linux), were actually used today by me in building OBS for this issue.
Operating System Info
Other
Other OS
AltLinux
OBS Studio Version
30.1.2
OBS Studio Version (Other)
No response
OBS Studio Log URL
none
OBS Studio Crash Log URL
No response
Expected Behavior
cmake should succeed
Current Behavior
https://github.com/obsproject/obs-studio/blob/10bfa99365c1ed1df27f3a0af60c218a46d9071b/cmake/Modules/CompilerConfig.cmake#L171
This code uses a minus sign from the warning option in the variable name, which breaks cmake.
And then cmake fail on any compile tests, like this:
I didn’t find in the history who added this code for e2k. It's better to delete this code, you won't be able to maintain it. And those distributions that work with this architecture will patch it themselves.
Steps to Reproduce
try to build on e2k machine
Anything else we should know?
Where's the build issues template, did you expect this to never happen?