-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
speed-dreams: update to 2.2.3 #32474
Conversation
On |
srcpkgs/speed-dreams/template
Outdated
nocross=yes | ||
replaces="speed-dreams-data>=0" | ||
CFLAGS=-fpermissive | ||
CXXFLAGS=-fpermissive | ||
LDFLAGS="-Wl,--no-as-needed" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add a comment explaining this? I suppose it depends on some library's constructor...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you add a comment explaining this? I suppose it depends on some library's constructor...
Honestly I don't know why --as-needed
is not supported, I just know it makes the build fail.
I will report it to upstream. I see they had the same problem in the past and then it was fixed, this is a regression.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can you mention in the commit message as well, then? Or even add a comment on top, that removal should be attempted when updated.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When cmake policy CMP0072 is set to NEW
, linking with --as-needed
fails. Should I patch CMakeLists.txt
to use the legacy library or just use --no-as-needed
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Huh, I didn't expect that. Theoretically we should pass it for all Cmake builds, since they are eventually going to start using that policy...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't know if other packages are affected.
Anyway, another workaround could be to pass -lGL
only when linking the problematic files (I tested this and it works), but mixing legacy and new libraries is ugly.
And document in the commit the x86_64-musl crash, for posterity :p |
--- a/src/modules/simu/simuv2.1/SOLID-2.0/src/C-api.cpp | ||
+++ b/src/modules/simu/simuv2.1/SOLID-2.0/src/C-api.cpp | ||
@@ -60,9 +60,7 @@ | ||
typedef map<DtObjectRef, Object *> ObjectList; | ||
typedef set<Encounter> ProxList; | ||
|
||
-#if defined( WIN32) || (__APPLE__) | ||
#define uint unsigned int | ||
-#endif | ||
|
||
PointBuf pointBuf; | ||
IndexBuf indexBuf; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this file should probably be named musl.patch, not musl.diff
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Aren't diff and patch synonyms? (I mean the files, not the programs). ".diff" is my personal preference, but I'll rename it if that's preferred to keep consistency.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we don't really use diff
in the repo, even if it's supported.
How far does it get for you in a musl VM? It segfaults here, right after complaining that shadow.xml is missing:
It even gets to play the startup sound and show the first screen. |
Found it, I think. Seems to be due to thread stack size. |
"-Wl,--no-as-needed" is required to avoid a linker error which occurs when linking with `-lOpenGL`. "-Wl,-z,stack-size=2097152" is required to avoid a stack overflow on threads, when running on musl. Without it, overflow happens in the openalmusicplayer::streambuffer() function, which allocates a sound buffer on the stack. Co-authored-by: Érico Nogueira <erico.erc@gmail.com>
That was it. Merging now. |
General
Have the results of the proposed changes been tested?