1
0
mirror of https://github.com/libretro/RetroArch synced 2024-07-08 12:15:49 +00:00
RetroArch/qb
Jesse Talavera-Greenberg cbf49a0b77
XDelta patch support (Take 2) (#15915)
* Add xdelta in deps

* Include <assert.h> in xdelta3.h

- Otherwise the static_assert calls can fail

* Build xdelta3 in Makefile.common

* Add xdelta support to the softpatching infrastructure

- The patching itself isn't fully implemented yet

* Adjust how xdelta3.h checks the sizes of some types

- Now checks max values instead of relying on autotools

* Add some enums that were excluded by the cherry-pick

* Remove stray whitespace

* Adjust SIZE macros in xdelta3.h

- Move them outside the XD3_USE_LARGEFILE64 block
- Add more SIZE declarations
- Make SIZEOF_UNSIGNED_LONG_LONG contingent on the presence of ULLONG_MAX

* Reintegrate xdelta support

* Enable support for xdelta's secondary compressors

- Necessary for some patches

* Fix some format specifiers

* Remove unnecessary files from xdelta

* Include xdelta3.h with a relative path

* Add xdelta3 headers to HEADERS variable

* Gate Xdelta support behind HAVE_XDELTA

- HAVE_XDELTA is on by default
- HAVE_PATCH is still required for HAVE_XDELTA to be meaningful
- Support is mostly contingent on the availability of LZMA
- Anything modern should be okay
- Legacy platforms (e.g. DOS) may need to have Xdelta support disabled
- At least until some other solution can be found

* Disable HAVE_XDELTA on platforms where the build recently failed

- These come from looking at the failed builds on GitHub
- These are guesses, and may turn out to be wrong

* Fix a potential memory leak

- Whoops, looks like I need to call two cleanup functions
- xd3_close_stream exists separately from xd3_free_stream

* Split the --help printout for --xdelta into its own strlcat call

- GCC was complaining about #ifdefs within macro arguments being non-portable

* Fix some incorrect printf format specifiers

* Modify Xdelta to adhere to C89

- It's mostly using RetroArch's INLINE macro instead of the inline keyword

* Slight cleanups

* Remove a stray comma that was hindering C89 builds

* Add XDelta support to CHANGES.md

* Change how the xdelta patch's name is computed

- To be in line with other recent refactoring

* Fix an incorrect merge

- Whoops, this part was from before I figured out how to get the size of a patched file

* Explain the song-and-dance behind computing a patched file's size

* Define some XDelta3-related constants to 0 on 32-bit platforms

* Adjust some Xdelta-related macro definitions

- Exclude the encoder, since we're not making patches
- Move some #defines to after inclusion of <stdint.h>, to fix undefined behavior
- Remove _WIN32_WINNT overrides, since they were for code that we're not using

* Fix Xdelta support

* Wrap an encoder-only function in `#if XD3_ENCODER`
2023-11-23 20:19:07 -08:00
..
config.comp.sh qb: Fix checking the CXX compiler 2018-05-03 12:24:32 -07:00
config.libs.sh (Apple/Makefile/Qb) HAVE_METAL being defined does not bake out OpenGL, 2023-02-23 17:53:03 +01:00
config.moc.sh qb: Fix the qt configure check with older compilers. 2020-01-14 21:01:50 -08:00
config.params.sh XDelta patch support (Take 2) (#15915) 2023-11-23 20:19:07 -08:00
qb.comp.sh qb: Don't set cc_works in test_compiler. 2020-01-15 09:23:49 -08:00
qb.init.sh qb: Update the exists function. 2020-01-14 10:20:35 -08:00
qb.libs.sh ./configure: Add BearSSL support 2020-09-20 16:58:07 +02:00
qb.make.sh qb: Refactor how config.h and config.mk are created. 2019-07-28 07:59:41 -07:00
qb.moc.sh qb: Allow multi argument CC and CXX. 2020-01-13 09:41:14 -08:00
qb.params.sh qb: Remove deprecated arguments. 2019-10-31 22:53:52 -07:00
qb.system.sh (QB) MacOS X 10.5's toolchain does not support extra languages, (#11917) 2021-01-21 06:50:35 +01:00