Page MenuHomeSolus

Update to 1.19.1 and fix a couple games not starting
ClosedPublic

Authored by Jacalz on Jan 26 2019, 12:58 PM.

Details

Summary

The issues with games ported from Aspyr Media not starting was caused by a the flag -free-vectorize, this commit fixes that.

Fixes T7458

Changelog:
Changes between 1.18.2 and 1.19.1 can be found here.

Packaging Changes:

  • Use ninja for faster build times
  • Use https for homepage link
  • Update license to SPDX 3.0 compliance
Test Plan
  • Succesfully built and played naev against this new version.
  • Succesfully started Borderlands 2 from Steam and verified that audio worked.
  • Succesfully rebuilt D5289 (RetroArch) and played SNES games with this version.

Diff Detail

Repository
R2225 openal-soft
Branch
master
Lint
No Linters Available
Unit
No Unit Test Coverage

Event Timeline

Jacalz created this revision.Jan 26 2019, 12:58 PM
Jacalz requested review of this revision.Jan 26 2019, 12:58 PM

question, why they switch away from github? I'm thinking about cuppa support

There are still GitHub tarballs but for some reason Borderlands 2 doesn't start when using them :I
I can step up with maintaining this, I just need to subscribe to the GitHub releases but use their own tarballs. I know it is kind of a bummer for Cuppa support, but it is better than having a lot of games not starting πŸ™

Could you try using the git tag against GitHub instead of switching to another source? Sometimes actually, GitHub-generated tarballs are not fine, but git tags are okay.

livingsilver94 added inline comments.Jan 26 2019, 1:45 PM
package.yml
22

Are you sure these flags are still needed?

@livingsilver94 You were right, taking the git tag using git actually made it work πŸ‘

Jacalz marked an inline comment as done.Jan 26 2019, 2:06 PM
Jacalz added inline comments.
package.yml
22

From what I can tell it looks like that they are still needed.

Jacalz updated this revision to Diff 12612.Jan 26 2019, 2:14 PM

Change to pulling git tag, seems like cleaner solution

Jacalz edited the summary of this revision. (Show Details)Jan 26 2019, 2:15 PM
Jacalz retitled this revision from Update to 1.19.1 and stop using the GitHub tarballs, fixes T7458 to Update to 1.19.1 and switch to using git tag, fixes T7458.
Jacalz updated this revision to Diff 12720.Jan 31 2019, 5:21 PM

Minor rebuild to check tha everything still works as expected

BennZoid added a subscriber: BennZoid.
Jacalz updated this revision to Diff 12835.Feb 5 2019, 4:12 PM
  • Rebuild for new packages to test against
Jacalz edited the test plan for this revision. (Show Details)Feb 5 2019, 4:30 PM
Jacalz edited the test plan for this revision. (Show Details)

@Jacalz what steps are you taking to make this patch work? I've been testing but this doesn't appear to fix the issue on my system

Steps taken:

  • switch to unstable repo
  • eopkg update then restart
  • git clone openal-soft (v1.18.2/release 7)
  • patch package.yml with your changes (to 1.19.1/ninja)
  • solbuild the new packages
  • install openal-soft 1.19.1 (32 and 64 packages, not devel)
  • restart computer again for good measure
  • try to start Borderlands 2
  • still getting segmentation fault

This affects all games that were ported by Aspyr. Tried Civ V, Civ VI, Borderlands2, and KOTOR II. All fail to start.

Currently the only solution I have found is preloading the 32-bit library from release 6.

Jacalz added a comment.Feb 5 2019, 5:42 PM

That is strange @BennZoid, could you try to build with https://kcat.strangesoft.net/openal-releases/openal-soft-1.19.1.tar.bz2?

Jacalz added a comment.Feb 5 2019, 5:43 PM

Might be some issue with stuff sticking around after updating, if that works for you I will use that just like this was from the beginning πŸ™‚

Thanks for looking into this so quick! Sadly using the tarball results in the exact same issue.

Jacalz added a comment.Feb 5 2019, 6:02 PM

Just one more thing for you to try, bump the release version one number to. I think I got a better result when installing an update with bigger release number...

Just found something that makes things weirder. I tried to compile release 6 on my computer and it is also segfaulting πŸ˜•

I'll try iterating the release number and see if that helps. Otherwise I'm updating my old laptop to see if I can reproduce on a different system.

Jacalz added a comment.Feb 5 2019, 6:14 PM

I was running in to issues when using GitHub tarballs but switching to those from https://kcat.strangesoft.net/openal-releases/ did seem to fix it for me and bumping the release number to one higher seemed to help when installing that newly built version...

BennZoid added a comment.EditedFeb 5 2019, 8:59 PM

Same issue happened on my laptop as my desktop. Doesn't seem to matter which source is used. Iterating release numbers didn't help either.

I have made some progress though. Narrowed down the issue to being one of the build flags used by the macros. By adding an environment key and unsetting all flags it successfully builds and runs the games. This is probably a sub optimal solution but when it comes to flags its all over my head. Any ideas which particular flag could cause this? There was a similar problem in arch that was fixed using -mstackrealign, but that doesn't seem to help in this case (or I'm using it wrong!)

For reference the following is what I added before the builddeps key

environment:
    unset CFLAGS;
    unset CXXFLAGS;
    unset LDFLAGS;

@Jacalz I've got this all figured out! My issues were caused by -ftree-vectorize

We can remove that flag by adding the following key to the package.yml

environment:
    export CFLAGS="${CFLAGS/-ftree-vectorize/}"

This works with all sources, including the github tarball. Could you test and confirm that this change still works for you?

BennZoid added inline comments.Feb 6 2019, 7:54 PM
package.yml
22

-DCMAKE_INSTALL_PREFIX=/usr is not required anymore, it is set by the ninja macro.
-DCMAKE_INSTALL_LIBDIR=%libdir% is still needed

Jacalz added a comment.Feb 6 2019, 8:15 PM

It sounds like wonderful news @BennZoid and you did a really good job working it out πŸ‘ I don’t know why my system got fixed during my testing, but I will see about implementing your change tomorrow πŸ™‚

Jacalz added inline comments.Feb 6 2019, 8:16 PM
package.yml
22

Okay, will get this sorted tomorrow πŸ™‚

I have an idea why your system might be fixed. Check if /usr/lib/libopenal.so.1.19.1 exists. Without the libdir flag for cmake ninja it installs the 32bit library into /usr/lib rather then /usr/lib32. So if you locally built and installed a working version from git then you could still have it installed. I briefly did that and it made debugging very confusing.

Jacalz added a comment.Feb 7 2019, 3:34 PM

You were right @BennZoid, that seemed to be the case πŸ‘

Jacalz updated this revision to Diff 12901.Feb 7 2019, 3:42 PM
  • A round of applause goes to @BennZoid for figuring it all out!

FWIW, the export command for build flags should be needed only in the build block.

Jacalz retitled this revision from Update to 1.19.1 and switch to using git tag, fixes T7458 to Update to 1.19.1 and fix a couple games not starting.Feb 7 2019, 3:47 PM
Jacalz edited the summary of this revision. (Show Details)
Jacalz marked 4 inline comments as done.Feb 7 2019, 3:49 PM

Mark inline comments as done

Jacalz added a comment.Feb 7 2019, 3:55 PM

I tested that @livingsilver94 and it doesn't work...

Hah, that's something I wouldn't ever have bet on. Thanks for the test!

Jacalz updated this revision to Diff 12902.Feb 7 2019, 3:58 PM
  • Remove empty line under CMAKE_ninja
Jacalz added a comment.Feb 7 2019, 4:01 PM

No worries πŸ™‚ @livingsilver94

Good eye @livingsilver94. I just ran a quick test, looks like we can change the flags in the setup step, before the cmake_ninja macro.

Jacalz updated this revision to Diff 12904.Feb 7 2019, 4:20 PM
  • Move export to setup step
DataDrake accepted this revision.Feb 16 2019, 12:59 AM
DataDrake added a project: Requires Rebuilds.
DataDrake added a subscriber: DataDrake.

LGTM. Thanks!

This revision is now accepted and ready to land.Feb 16 2019, 12:59 AM

This has sat accepted for a long time now, could we please get this merged so users can start playing some of their games again? πŸ™‚

Jacalz updated this revision to Diff 14045.Mar 23 2019, 8:47 AM
  • Safety rebuild with latest updates

Are you able to retest without dropping -ftree-vectorize? GCC is much less broken now.

Just did a quick retest with Borderlands 2 and Civ V, we still need to drop the flag otherwise they can't start.

This revision was automatically updated to reflect the committed changes.