Jump to content

the asm version in linux needs some patching !


Tux

Recommended Posts

For me at least, the data segment suddenly stopped being executable, which crashed all the asm in raine. That's with the latest binutils update, 2.35, it's very likely related even if I didn't find any info about it.

You won't see any problem as long as you don't recompile the code with a linker from this 2.35 binutils release, so the released binaries will be ok. For the new ones, I just committed a patch to git, it was easier to make than what I had feared, just call mprotect on the data segment of 1 of these functions, and since all the asm functions are grouped in the same segment by the linker, there is just 1 mprotect call to make. It's very linux specific, but afaik no other os did that, except osx, but I don't care about osx anymore, and this patching wouldn't work in osx (unless they have /proc/pid/mappings, which I doubt !).

It took me a big part of the day to find this, I just wanted to test something else this morning and stumbled on this... it was a bad day starting ! Anyway, back to normal now !

Oh, by the way this new linker also emits some warnings about relocations, but they are just harmless warnings, so they will stay for now. I patched only 1 function with the problem because that makes it shorter and more readable, it's the contrary for all the other functions, so they will stay as they are for now !

Warning looks like that :

/usr/bin/ld: linux-gnu-sdl/objectd/68000/s68000.o: warning: relocation in read-only section `.text'
/usr/bin/ld: warning: creating DT_TEXTREL in a PIE

Edited by Tux
Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...