Add Aarch64 support (#231)

* added mariadb-connector-cpp submodule

* raknet aarch64 support

* fix compile errors

* mariadb connector swap (in progress)

* update CMakeLists, add preprocessor definition to switch between mysql and mariadb connectors

* update types with missing aarch64 check

* corrected adding extra flag to properly compile mariadbconn in CMakeLists

* updated readme with arm builds section

* fix build failure if test folder does not exist

* Remove mysql connector from all builds, add mariadbconnector to windows build

* readd Linux check for backtrace lib to CMakeLists.txt

* Separate system specific mariadbconncpp extra compile flags

* Copy dlls to exes directory once built

* fetch prebuilt binaries on windows so that ClangCL can be used

* Delay load dll so that plugin directory is set correctly

* Fixed typo in glibcxx compile flag

* whitespacing, spaces -> tabs

* Updated README.md, included instructions to update

* Updated README.md

added libssl-dev requirement and removed mysql connector references from macOS builds section

* apple compile fixes for zlib and shared library name

* add windows arm64 checks to raknet

* remove extra . in shared library location

* Setup plugins directory for the connector to search in, pass openssl_root_dir on for apple

* Fix copy paths for single config generators and non windows

* change plugin folder location, another single config generator fix

* GENERATOR_IS_MULTI_CONFIG is a property not a variable

* Fixed a few errors after merge

* Fix plugin directory path, force windows to look at the right folder

* fixed directory name for make_directory command

* Update README.md

Updated MacOS, Windows build instructions.

* set INSTALL_PLUGINDIR so that the right directory is used

* Support for relative rpath for docker build

* added mariadb-connector-cpp submodule

* raknet aarch64 support

* fix compile errors

* mariadb connector swap (in progress)

* update CMakeLists, add preprocessor definition to switch between mysql and mariadb connectors

* update types with missing aarch64 check

* corrected adding extra flag to properly compile mariadbconn in CMakeLists

* updated readme with arm builds section

* fix build failure if test folder does not exist

* Remove mysql connector from all builds, add mariadbconnector to windows build

* readd Linux check for backtrace lib to CMakeLists.txt

* Separate system specific mariadbconncpp extra compile flags

* Copy dlls to exes directory once built

* fetch prebuilt binaries on windows so that ClangCL can be used

* Delay load dll so that plugin directory is set correctly

* Fixed typo in glibcxx compile flag

* whitespacing, spaces -> tabs

* Updated README.md, included instructions to update

* Updated README.md

added libssl-dev requirement and removed mysql connector references from macOS builds section

* apple compile fixes for zlib and shared library name

* add windows arm64 checks to raknet

* Setup plugins directory for the connector to search in, pass openssl_root_dir on for apple

* Fix copy paths for single config generators and non windows

* change plugin folder location, another single config generator fix

* GENERATOR_IS_MULTI_CONFIG is a property not a variable

* Fixed a few errors after merge

* Fix plugin directory path, force windows to look at the right folder

* fixed directory name for make_directory command

* Update README.md

Updated MacOS, Windows build instructions.

* set INSTALL_PLUGINDIR so that the right directory is used

* Support for relative rpath for docker build

* Rebase on main

* Remove extra git submodule

* Update CMakeLists.txt

* Remove CMakeLists.txt file from mariadb

Remove the CMakeLists.txt file from the mariaDBConnector so we dont build the tests.  Also add a config option to the CMakeVariables.txt so you can build the connector with multiple jobs

* Compile on windows

Specify the mariadbcpp.dll file location with a defined absolute path so windows knows it actually exists.

* default to 1 job

Default mariadb jobs running in parallel to 1 instead of 4

* Move mariadbcpp.dll file to the expected directory on windows

* Changed plugin

Updated the plugin location from the project binary directory to the expected location, the mariadb binary directory.

* Addressed windows dll issues by moving files to the expected directory instead of a directory that wouldnt get created

* Update README

Co-authored-by: Aaron Kimbrell <aronwk.aaron@gmail.com>
Co-authored-by: EmosewaMC <39972741+EmosewaMC@users.noreply.github.com>
This commit is contained in:
jumpy-badger
2022-07-04 05:33:05 +01:00
committed by GitHub
parent 1497d9b35a
commit eaa962f265
17 changed files with 271 additions and 129 deletions

View File

@@ -3,7 +3,7 @@
#include <assert.h>
#if defined(_WIN32) || defined(__CYGWIN__)
#include <io.h>
#elif !defined ( __APPLE__ ) && !defined ( __APPLE_CC__ ) && !defined ( __PPC__ ) && !defined ( __FreeBSD__ )
#elif !defined ( __APPLE__ ) && !defined ( __APPLE_CC__ ) && !defined ( __PPC__ ) && !defined ( __FreeBSD__ ) && !defined ( __aarch64__ )
#include <sys/io.h>
#endif
#include "DS_Queue.h"

View File

@@ -133,6 +133,7 @@ namespace GenRPC
#define AUTO_RPC_ABI_PPC 4 // first 6 args (even if float) in int reg; first 13 floats in reg.
// parameter passing area with shadow area.
#define AUTO_RPC_ABI_AARCH64 5
// Configure the parameters for the system.
#if defined(__i386__) || defined( _M_IX86 ) || defined( __INTEL__ )
@@ -176,6 +177,18 @@ typedef double HardwareReal;
typedef unsigned long long NaturalWord;
typedef double HardwareReal; // could be changed to __float128 on AMD64/nonwin
#elif defined( __aarch64__ ) || defined (_M_ARM64)
#define AUTO_RPC_ABI AUTO_RPC_ABI_AARCH64
#define AUTO_RPC_AUTORPC_WORD 64
#define AUTO_RPC_INT_REG_PARAMS 8
#define AUTO_RPC_FLOAT_REG_PARAMS 8
#define AUTO_RPC_PARAMETER_REFERENCE_THRESHOLD 0
#define AUTO_RPC_INT_SHADOW_OF_FLOATS 0
#define AUTO_RPC_ALLOC_SEPARATE_FLOATS 1
#define AUTO_RPC_CREATE_FLOAT_MAP 0
typedef unsigned long long NaturalWord;
typedef double HardwareReal;
#elif defined ( _PS3 )
typedef double HardwareReal;
typedef unsigned long long NaturalWord;

View File

@@ -92,8 +92,8 @@
defined(__amd64) || defined(__amd64__) || \
defined(__alpha__) || defined(__alpha) || defined(__ia64) || defined(__ia64__) || \
defined(_M_ALPHA) || defined(ns32000) || defined(__ns32000__) || defined(sequent) || \
defined(MIPSEL) || defined(_MIPSEL) || defined(sun386) || defined(__sun386__)
defined(MIPSEL) || defined(_MIPSEL) || defined(sun386) || defined(__sun386__) || \
defined(__aarch64__) || defined (_M_ARM64)
# define HOST_ENDIAN_IS_LITTLE
#else
@@ -128,8 +128,8 @@ namespace cat
defined(__amd64) || defined(__amd64__) || defined(_M_X64) || \
defined(__alpha__) || defined(__alpha) || defined(__ia64) || defined(__ia64__) || \
defined(_M_ALPHA) || defined(ns32000) || defined(__ns32000__) || defined(sequent) || \
defined(MIPSEL) || defined(_MIPSEL) || defined(sun386) || defined(__sun386__)
defined(MIPSEL) || defined(_MIPSEL) || defined(sun386) || defined(__sun386__) || \
defined(__aarch64__) || defined (_M_ARM64)
# define LITTLE_ENDIAN
#else