Commit Graph

2232 Commits

Author SHA1 Message Date
retro-wertz 85891fc7fd Reduce input delay by 1 frame and audio timing fix 2018-12-10 18:47:09 +08:00
Rafael Kitover 3cb38420bd builder: add patch for glibc 2.28 compat to m4
glibc 2.28 breaks the gnulib shipped with m4, this patch from gentoo
makes it compile.
2018-12-06 14:28:46 -08:00
Rafael Kitover 61b3084e4a builder: set host cc for libgpg-error to gcc
Set the var CC_FOR_BUILD=gcc in the core build environment. This is used
by libgpg-error to make host build tools when cross compiling, may be
used by other things as well.
2018-12-06 14:27:17 -08:00
Rafael Kitover 00b04692ae add travis hook for gitter 2018-12-05 14:38:54 -08:00
Rafael Kitover b60a6343e9
Merge pull request #326 from knightsc/tasks/add-lldb-support
Add LLDB support to gdb remote debugging stub
2018-12-05 14:24:27 -08:00
Rafael Kitover 27a874e3ba
Merge branch 'master' into tasks/add-lldb-support 2018-12-05 14:23:20 -08:00
Scott Knight a52eddb5b4 Handle debugger disconnect and reconnect properly
When connecting the debugger the debugger variable was
being set to true before setting up the dbgMain and other related
function pointers. This caused the idle loop to attempt to call dbgMain
which was still NULL. This change makes sure that debugger isn't
set to true until all function pointers are set and that when disconnecting
the remotePort variable is reset back to 0 so we can reconnect properly.
2018-12-05 14:17:52 -08:00
Scott Knight 6ba3b7791d Set correct register number in gdb stop reply
https://github.com/bminor/binutils-gdb/blob/master/gdb/features/arm/arm-core.xml

According to the current arm register definition file in gdb the cpsr register is
actually register number 25 and not 16.
2018-12-05 14:17:01 -08:00
Scott Knight f385fb2faf Update gdb remote query support
The latest version of gdb from devkitpro expects slightly
different response to some of the remote queries. For instance
when sending back the current thread id there should be no
space or dash between 'm' and the thread id. Additionally a
handful of other common remote gdb query params were
added to better support current versions of gdb
2018-12-05 14:17:01 -08:00
Rafael Kitover 3b185e235e builder: libvorbis fix
libvorbis autogen.sh calls the version-suffixed autoconf/automake
scripts, which ends up calling the wrong scripts, so remove the
autogen.sh and reconfigure manually.
2018-12-05 01:59:51 -08:00
Rafael Kitover c68f372e5a fix wrong copy-pasta in 36e412df
Set the CPPFLAGS/CFLAGS/CXXFLAGS/OBJCXXFLAGS variables correctly in
build_dist(), were set incorrectly in 36e412df.
2018-12-03 16:24:42 -08:00
Zach Bacon 16ccad07c7
Merge pull request #330 from retro-wertz/libretro_updates
Libretro : cheat updates and tubo buttons
2018-12-03 11:11:38 -05:00
Rafael Kitover 36e412df53 builder: mingw: fix libffi for i686 + improvemnts
Add the tables DIST_EXTRA_{CPPFLAGS,CFLAGS,CXXFLAGS,OBJCXXFLAGS} for
adjustments during builds.

Add -DSYMBOL_UNDERSCORE to DIST_EXTRA_CPPFLAGS for libffi on mingw when
the target is i686, see:

https://bugzilla.mozilla.org/show_bug.cgi?id=1336569

Also set target_bits and target_cpu appropriately in the msys2 script.
2018-12-03 00:37:04 -08:00
Rafael Kitover 5b0f2e8aa6 builder: msys2: fix links to host binaries
Factor out non-environment code from host_env()/target_env() into
host_env_base()/target_env_base(). Such as that for creating symlinks to
root, link host binaries to the target root, as well as calling the
hook.

Call the _base() functions from the msys2 overrides so that symlinks are
created properly, remove redundant symlink code.
2018-12-02 20:35:29 -08:00
retro-wertz 727606420a
Update ISSUE_TEMPLATE.md 2018-12-01 07:33:19 +08:00
retro-wertz ca56ccffeb libretro: Simplify cheats, add multiline support for GB/GBC 2018-12-01 07:24:54 +08:00
retro-wertz a2d5c260ec libretro: Add turbo buttons 2018-12-01 07:13:14 +08:00
Scott Knight 3484ecc419
Add support for LLDB qHostInfo packet
https://github.com/llvm-mirror/lldb/blob/master/docs/lldb-gdb-remote.txt

The qHostInfo command is listed as a high priority to implement for gdb
stubs that lldb can connect to. Adding support for this command allows
lldb to properly connect with it's `gdb-remote 55555` command and
correctly determine the target and allow debugging.
2018-11-28 08:50:50 -05:00
Scott Knight dd2a1d9b51
Fix stack overflow in remoteMemoryRead
When doing a remote memory read the debugger can ask for any size.
The buffer being allocated however was only 1024 bytes long and the
code in remoteMemoryRead also attempts to write a zero byte at the
end of the array. This code will now take the count of bytes the debugger
is trying to read and allocates a buffer that is count * 2 + 1 large. This is large
enough to hold the $02x formatted hex byte for each byte as well as the zero
byte written at the end.
2018-11-28 08:50:49 -05:00
Scott Knight 4f28e84632
Fix stack overflow in remotePutPacket
If the packet passed into remotePutPacket was 1024 bytes or
larger then the buffer array would not be large enough to hold
the $, checksum and zero byte written. This now allocates a buffer
of size count + 5 to accommodate these extra characters.
2018-11-28 08:50:48 -05:00
Rafael Kitover db8aaeca87 builder: mingw: build zlib-target after cmake
Since mingw zlib is built with cmake, move the dist to after cmake in
the build order.
2018-11-27 06:18:46 -08:00
Rafael Kitover beaf934082 builder: bump libxslt 1.1.33-rc1 -> 1.1.33-rc2 2018-11-27 04:51:53 -08:00
Rafael Kitover afbe647aed builder: catgets fix for msys2 + minor changes
Change `ln -s` to `cp` in the catgets makefile in the applied patch,
this is used for making symlinks to some header files, this will
hopefully fix building catgets for @ZachBacon on msys2. There seems to
be a problem with the mingw gcc reading headers that are symlinks, even
if they are real windows symlinks.

Also slightly refactor checking for target built files. Add the `-f`
flag for `install_artifact([-f] $dist)` for the full path to the target
file, and add the helper functions `check_install_artifact($dist)` and
`check_install_artifact_relative($dist $root_path)`.

These helper functions also display error messages if the target file
does not exist, as opposed to the previous behavior where it would just
silently exit nonzero.
2018-11-23 09:48:48 -08:00
Rafael Kitover a6034ddfa2 builder: disable building openssl tests
Remove the build_tests dependency from build_all in the openssl makefile
due to a possible build issue on msys2.
2018-11-18 09:03:24 -08:00
Rafael Kitover 9ebc3fc28c builder: build mingw dlfcn after cmake
dlfcn requires cmake to build.
2018-11-16 02:19:05 -08:00
Rafael Kitover 115fce6958 builder: do not defer env eval for msys2 host hook
Do not defer evaluating $BUILD_ENV in the msys2 host/target environment
overrides, as that causes the subsequent eval to try to run the variable
as a command.
2018-11-15 19:22:56 -08:00
Rafael Kitover b9911a5759 builder: fix regressions from 37869441..a3ec309b
Refactor the build environment evaluation, make build variables set
immediately so that they don't grow longer on re-evaluations and defer
all other variables. Export as many build related variables as possible.

Make one more crucial fix for cross builds: run the post_build after
LDFLAGS and LIBS are restored, so that this does not interfere with
setting and restoring the build environment for host builds.

Other changes:

- fontconfig 2.13.0 -> 2.13.1

- openal     1.19.0 -> 1.19.1

- set fontconfig configure type to autoreconf, disable tests

- disable the openssl parallel build patch, it fails unpredictably,
  always build openssl with -j1

- configure libicu with --disable-tests and a few other things disabled,
  the tests cause link issues on mingw i686

- also make a minor fix to libicu makefiles for mingw (replace echo -n
  with printf)

- move $BUILD_ENV evaluation to the builder() main function to defer
  some variable initializations

- add patch for openal to mingw-cross to use gcc instead of cmake to
  build some native tools it uses, cmake causes issues with cross builds

- in host_env()/target_env() defer variable expansion and include a copy
  of $BUILD_ENV in the appropriate sequence
2018-11-15 01:54:19 -08:00
Rafael Kitover a3ec309bd6 builder: more minor mingw cross fixes
Do not defer evaluating build env variables in mingw-cross.sh, this
interferes with switching them between host/target.

In build_dist() adjust the LDFLAGS and LIBS after pre_build has run,
because host/target env setting happens in pre_build and adjustments get
lost.
2018-11-12 09:48:35 -08:00
Rafael Kitover d725978abf builder: fix openssl parallel make patch
Fix sed regex for the openssl POST_CONFIGURE to work with the mac/BSD
sed (anchor to beginning of line.)
2018-11-12 05:40:24 -08:00
Rafael Kitover cf3ed8f370 builder: fix quoting issues introduced in 37869441
In host_env/target_env/etc. functions, quote all variables values so
that they pass through eval correctly.
2018-11-12 04:47:59 -08:00
Rafael Kitover 37869441d2 builder: msys2 fixes + misc improvements
- Fix leading spaces in build env vars.

- Pass -Dcc="$CC" to the c2man metaconfig, it tries to use cc on msys2
  which fails.

- Pass LDFLAGS to openssl make to fix link errors.

- Change the host_env, target_env and related functions to output a list
  of commands for eval.

- Add a --host-env flag to output the host env for cross build
  environments.

- Ignore symlink failures when installing dists, symlinks fail on msys2
  sometimes for some reason.

- Put libicu in the list of both host and target dists only in
  mingw-cross, the host libicu does not build on msys2, and everything
  works fine without it.

- Add -j1 to openssl make args to disable parallel builds for the msys2
  and cygwin host builds, because they fail otherwise.

- Add "-ldl -lcatgets -lws2_32" to libicu LDFLAGS for the target build,
  ws2_32 may be necessary for 32 bit builds.
2018-11-12 04:07:48 -08:00
Rafael Kitover 975a1866f5 cmake: support linuxbrew mingw toolchain
Add default linuxbrew mingw toolchain root paths to cmake mingw
toolchain files.
2018-11-11 19:33:55 -08:00
Rafael Kitover 453fa0decf add visual studio .vs/ directory to .gitignore 2018-11-04 21:22:29 -08:00
Zach Bacon eee4add6f3 Add localizations to installer, next will be adding portable mode so users can install to a custom location without the shortcuts being installed 2018-11-04 09:24:23 -05:00
Zach Bacon 2e5235af8d Initial rework of the installer framework, this is very incomplete, but it'll hopefully allow individual selection of translations as well as offer a portable mode installer 2018-10-29 18:33:20 -04:00
Rafael Kitover 6f1df2ddea rename mingw include dir mingw-include in deps 2018-10-23 20:07:04 -07:00
Zach Bacon 5e58e4c3e6 when it comes to cross compiling, Most unices like linux are case sensitive 2018-10-23 22:06:18 -04:00
Rafael Kitover 26b15b2c1e add mingw dependencies/include to include path
Older versions of mingw64 do not have the versionhelpers.h header, add
it to the dependencies submodule include/ directory and add it to
include_directories() for mingw in cmake.
2018-10-23 16:32:34 -07:00
Rafael Kitover 9cb9ce86bd fix Windows XP Compatibility #315
Use the IsWindowsVistaOrGreater() function from VersionHelpers.h, which
fortunately is part of mingw, to check for the availability of the
comctl32 LoadIconWithScaleDown API, which we use to fix issues with the
app icon, like the icon being too big in the volume mixer.
2018-10-23 06:19:34 -07:00
Rafael Kitover 1bf51ec1fa builder: 32 bit mingw fixes
Add -lm (the math library) to CFLAGS/CXXFLAGS/OBJCXXFLAGS/LDFLAGS and
LIBS for the cases where it is used but not explicitly linked.

Improve the sed script to override building the openal native tools as
it was failing for mingw 32 bit. Add -lm and remove flags from the
environment.
2018-10-14 21:34:00 -07:00
Rafael Kitover ed8c928adb builder: support gentoo crossdev + misc fixes
Support the gentoo crossdev mingw environment for the mingw cross
builder:

- For the cmake toolchains, add /usr/<arch>/usr to root paths, as this
  is the mingw root for crossdev.

- -Wno-error=all no longer works with gcc 8.2, instead remove all
  -Werror flags in dist_post_configure().

- Also remove all -I/usr/include flags in dist_post_configure().

- Don't prepend ROOT/host/bin to the PATH globally, only in
  set_host_env(). This way the target config scripts are correctly found
  in PATH.

- Bump openssl 1.0.2o -> 1.0.2p, cmake 3.10.3 -> 3.13.0-rc1, gd 2.2.4 ->
  2.2.5 and glib 2.57.2 -> 2.58.1.

- Add libicu unicode handling library, needed by some deps. Put into the
  list of dists that must be built for both the host and the target. Use
  a whole bunch of patches from MSys2 for it.

- Make openssl build in parallel by using a sed script to prepend a + to
  the appropriate make rules.

- Replace fontconfig EXTRA_LIBS with MAKE_ARGS: LIBS="-lintl -liconv"
  because these libs were being stripped out from LIBS and LDFLAGS.

- Add V=1 VERBOSE=1 to all make invocations for extra verbosity (to see
  compile/link invocations.)

- As a consequence, use dist_ninja_args() for ninja, it will still take
  options in DIST_MAKE_ARGS.

- Add CONFIGURE_TYPE "cmakeninja" which is like the "cmake" type except
  with -G Ninja to use the ninja generator and built with ninja. Nothing
  uses this yet.

- Fix dist_patch() output for already applied patches.

- Add -L/usr/<arch>/usr/lib64 to CFLAGS/CXXFLAGS/OBJCXXFLAGS/LDFLAGS,
  because crossdev libpthreads.a is in that directory and it's not in
  gcc search paths. It cannot go into CPPFLAGS because those are used
  for windres invocations, and windres errors out with non-cpp flags.

- Add -DMINGW_HAS_SECURE_API to all flags to fix a problem with the
  mingw headers in crossdev.

- Add -lpthread to a default LIBS env var so that it's often linked last
  against any libraries that may need it, at least for autoconf.

- Set the PKG_CONFIG env var to the path of the built pkg-config binary,
  not exactly sure why this was necessary.

- Overhaul environment variable saving/restoring for set_host_env() so
  that more variables are covered and have good host defaults.

- Add the dlfcn-win32 for mingw for dependencies that need -ldl.

- Add some MSys2 patches for fontconfig.

- Use a sed script to fix the native tools compilation when cross
  compiling openal.

- Replace the fedora glib patches for mingw with MSys2 ones for the
  newer glib.

- Add --with-threads=posix --disable-libelf to glib DIST_ARGS.
2018-10-11 06:55:53 -07:00
ZachBacon b60cd3326f Update openal to use github url 2018-10-07 22:42:59 -04:00
retro-wertz aebda1b706 debian: update dependency
add zip, needed during compile
2018-09-22 07:40:22 -07:00
ZachBacon 58083d9d4a Gonna use universaldxsdk for xaudio 2018-09-16 15:20:06 -04:00
Rafael Kitover 721c1b7c19 Revert "hopefully fix bin2c for msvc"
This reverts commit 01a75e8e6e.

The bin2c executable path is already a full absolute path.
2018-09-16 11:14:49 -07:00
Rafael Kitover 01a75e8e6e hopefully fix bin2c for msvc
Prefix destination bin2c.exe with ${CMAKE_BINARY_DIR} so that it doesn't
try to use whatever its current directory is.
2018-09-16 11:06:48 -07:00
Rafael Kitover b9d0f81843 builder: fix ccache on msys2
Apply msys2 patch for ccache, otherwise it hangs when compiling.
2018-09-16 10:13:04 -07:00
Rafael Kitover be0d49a304 builder: msys2 fixes
Build zlib before ccache so that ccache does not try to use its bundled
zlib, which does not compile cleanly on cygwin/msys2.

A couple of related PRs for ccache:

https://github.com/ccache/ccache/pull/311
https://github.com/ccache/ccache/pull/310

Replace the usage of xzcat/bzcat in archive unpacking with `xz -dc` and
`bzip2 -dc` because @ZachBacon had some issues with xzcat trying to
compress instead of decompress.

When switching msys2 build modes, unset related env vars first,
sometimes they can get mixed up for some reason.
2018-09-12 17:21:40 -07:00
Rafael Kitover 3aa00bfbbf builder: fix libuuid_mingw for mingw cross
Unset UUID_LIBS when building host fontconfig, which contains
-luuid_mingw for the cross fontconfig.

Add trailing semicolons on core POST_BUILD actions.
2018-09-08 19:59:07 +00:00
Rafael Kitover 5b5e319378 builder: don't install cpanm with local::lib
Don't pass -I to cpan when installing App::cpanminus, because that may
ignore our env vars and put things into ~/perl5 .
2018-09-08 19:48:29 +00:00