Closed RobLoach closed 5 years ago
@jet082 Would you mind trying this one out? Probably missed something.
This does not currently compile. Here are the changes you need to make to get it to work:
1) You forgot to add some checks. Make sure you have && !defined(DONT_WANT_ARM_OPTIMIZATIONS)
to the _ARM_
checks in vendor/libretro-common/audio/resampler/drivers/sinc_resampler_neon.S
, vendor/libretro-common/audio/conversion/s16_to_float_neon.c
, vendor/libretro-common/audio/conversion/float_to_s16_neon.c
, vendor/libretro-common/audio/conversion/float_to_s16.c
, and vendor/libretro-common/audio/conversion/s16_to_float.c
2) Add && !defined(DONT_WANT_ARM_OPTIMIZATIONS)
to the #if defined(WANT_NEON)
line in vendor/libretro-common/audio/resampler/drivers/sinc_resampler.c
(you only need to do the one above the line sinc_resampler.process = resampler_sinc_process_neon;
)
3) Change the Makefile.libretro
. It does not set the flag properly for some reason if you do it via CC. So remove it there and add the line: CFLAGS += -DDONT_WANT_ARM_OPTIMIZATIONS
4) Maybe add in tvOS builds as well. They are essentially identical to ios-arm64. Just add another check in the Makefile for tvos-arm64
. You will also need to change the line checking for "ios" on its own and the lines passing -miphoneos-version-min=
(since it uses -mtvos-version-min=9.0
)
@jet082 Ok! Finally managed to compile with this version and your instructions...
Thank you so much!
Unsure about the libretro-common changes. That goes beyond my knowledge, and we aim to have the same code across all platforms for it. Perhaps send a PR up to https://github.com/libretro/libretro-common for it?
The other changes, would you mind sending a Pull Request with it? I find it difficult to follow code diff instructions.
Unsure about the libretro-common changes. That goes beyond my knowledge, and we aim to have the same code across all platforms for it. Perhaps send a PR up to https://github.com/libretro/libretro-common for it?
The other changes, would you mind sending a Pull Request with it? I find it difficult to follow code diff instructions.
Is there a particular reason you need to pull libretro-common in as a submodule? It is generally better to just keep a local copy in your repo, so that you can ensure that unrelated updates to libretro-common don't somehow break your code.
If you make libretro-common local, those changes can be added.
Is there a particular reason you need to pull libretro-common in as a submodule?
Makes updating libretro-common a lot easier, and protects from deviating from it. Haven't had to change code in libretro-common code. When I have had to change libretro-common, I used my own target/branch and pushed the changes upstream. Pushing these changes upstream may help iOS compilation of other cores down the line.
If you make libretro-common local, those changes can be added.
These updates look great! Thanks a lot for pushing them forwards. I'll merge this and make an issue about pushing the changes upstream.
Unfortunately, there was one more change I forgot to push into libretro-common.
Also, you will need to do the following:
Change the Makefile.libretro. It does not set the flag properly for some reason if you do it via CC. So remove it there and add the line: CFLAGS += -DDONT_WANT_ARM_OPTIMIZATIONS
The final change we need in libretro-common is
References #378