Skip to content
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

64bit fixes from Flatpak release #232

Closed
wants to merge 610 commits into from
Closed

Conversation

SegHaxx
Copy link

@SegHaxx SegHaxx commented Dec 15, 2020

Basilisk II has been accepted on Flathub. These patches are now live in production. :)

These are the fixes I needed to make this possible. It comes down to:

  1. 64bit portability fixes (fix ERROR: Not enough free memory. #188 backport 64bit patches from qemu #55 [x86-64] Crash accessing websites with the "slirp" network driver and any browser #27)
  2. Updating autotools
  3. The linker scripts break spectacularly on the freedesktop platform

BII has historically had to do a lot of faffing about with the memory map to make sure things fit on 32bit platforms, and the linker scripts are part of that.

On 64bit, we have free reign over the entire 32bit address space, and then some, except for that pesky security guard at 0x0:

$ pmap -x `pidof BasiliskII`
4569:   BasiliskII
Address           Kbytes     RSS   Dirty Mode  Mapping
0000000000010000   66624    6168    6168 rw---   [ anon ]
0000000004422000     772     772     772 r----   [ anon ]
0000561ea6297000     440     440       0 r---- BasiliskII
0000561ea6305000     904     840       0 r-x-- BasiliskII
0000561ea63e7000     256     164       0 r---- BasiliskII
0000561ea6428000     152     152     152 r---- BasiliskII
0000561ea644e000     160     160     160 rw--- BasiliskII
...

You can see the Mac RAM and framebuffer allocations starting at 0x10000 and 0x4422000. Everything else is well into 64bit space. I see no reason for the linker scripts to exist on 64bit platforms.

And with the upcoming memory management fix I'm working on we shouldn't even need them on 32bit anymore. :)

rakslice and others added 30 commits February 6, 2020 18:14
ADB mouse event buffering proposed by OulanB
…sh_fix

SS Windows: Don't try to receive frames when eth is unloaded on the MacOS side
…t correctly; actually allocate space for the other HInfo that set_finfo reads, such as the times
mingw32: Fix truncated extfs volume name, crash due to icon date issue
…gen, otherwise on Windows use this pregenerated dyngen
- add wrappers with default calling convention for powerpc_cpu member functions used through nv_mem_fun ptr()
** explicit wrappers for member functions that were used explicitly
** dynamic wrapper generator in nv_mem_fun1_t for member functions used dynamically via the instruction table
- add missing direct addressing (non-zero constant offset to Mac memory) support in lvx and stvx implementations
- fix mismatched parameter lists between powerpc_jit member functions and the calls they get through the jit_info table to fix problems at -O2
@SegHaxx SegHaxx force-pushed the flatpak branch 2 times, most recently from 1af1e59 to 1aa6966 Compare June 18, 2021 22:26
@SegHaxx SegHaxx force-pushed the flatpak branch 2 times, most recently from 43b98aa to 5085883 Compare June 19, 2021 02:22
@asvitkine
Copy link
Collaborator

Not sure what the expectation is for this PR, but if you'd like things upstreamed, it can't be in the form of 600 commits.

You can send more granular PRs for specific improvements.

@SegHaxx
Copy link
Author

SegHaxx commented Jun 19, 2021

Sorry forgot this was still open and messed up the tag. I rebased my work on kanjitalk755's repo.

@SegHaxx SegHaxx closed this Jun 19, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

ERROR: Not enough free memory.
9 participants