mirror of
https://github.com/mjansson/rpmalloc.git
synced 2026-01-15 19:41:17 +01:00
build fixes for macos and posix
This commit is contained in:
@@ -36,7 +36,7 @@ class ClangToolchain(toolchain.Toolchain):
|
||||
self.ccdeps = 'gcc'
|
||||
self.ccdepfile = '$out.d'
|
||||
self.arcmd = self.rmcmd('$out') + ' && $toolchain$ar crsD $ararchflags $arflags $out $in'
|
||||
self.linkcmd = '$toolchain$cc $libpaths $configlibpaths $linkflags $linkarchflags $linkconfigflags -o $out $in $libs $archlibs $oslibs $frameworks'
|
||||
self.linkcmd = '$toolchain$link $libpaths $configlibpaths $linkflags $linkarchflags $linkconfigflags -o $out $in $libs $archlibs $oslibs $frameworks'
|
||||
|
||||
#Base flags
|
||||
self.cflags = ['-D' + project.upper() + '_COMPILE=1',
|
||||
@@ -348,6 +348,8 @@ class ClangToolchain(toolchain.Toolchain):
|
||||
flags = []
|
||||
if targettype == 'sharedlib':
|
||||
flags += ['-DBUILD_DYNAMIC_LINK=1']
|
||||
if self.target.is_linux():
|
||||
flags += ['-fPIC']
|
||||
flags += self.make_targetarchflags(arch, targettype)
|
||||
return flags
|
||||
|
||||
@@ -393,6 +395,12 @@ class ClangToolchain(toolchain.Toolchain):
|
||||
flags += ['-Xlinker', '/DLL']
|
||||
elif targettype == 'bin':
|
||||
flags += ['-Xlinker', '/SUBSYSTEM:CONSOLE']
|
||||
else:
|
||||
if targettype == 'sharedlib':
|
||||
if self.target.is_macos() or self.target.is_ios():
|
||||
flags += ['-dynamiclib']
|
||||
else:
|
||||
flags += ['-shared']
|
||||
return flags
|
||||
|
||||
def make_linkarchlibs(self, arch, targettype):
|
||||
|
||||
@@ -25,7 +25,7 @@ class GCCToolchain(toolchain.Toolchain):
|
||||
self.ccdeps = 'gcc'
|
||||
self.ccdepfile = '$out.d'
|
||||
self.arcmd = self.rmcmd('$out') + ' && $toolchain$ar crsD $ararchflags $arflags $out $in'
|
||||
self.linkcmd = '$toolchain$cc $libpaths $configlibpaths $linkflags $linkarchflags $linkconfigflags -o $out $in $libs $archlibs $oslibs'
|
||||
self.linkcmd = '$toolchain$link $libpaths $configlibpaths $linkflags $linkarchflags $linkconfigflags -o $out $in $libs $archlibs $oslibs'
|
||||
|
||||
#Base flags
|
||||
self.cflags = ['-D' + project.upper() + '_COMPILE=1',
|
||||
@@ -82,6 +82,7 @@ class GCCToolchain(toolchain.Toolchain):
|
||||
#Builders
|
||||
self.builders['c'] = self.builder_cc
|
||||
self.builders['cc'] = self.builder_cxx
|
||||
self.builders['cpp'] = self.builder_cxx
|
||||
self.builders['lib'] = self.builder_lib
|
||||
self.builders['multilib'] = self.builder_multicopy
|
||||
self.builders['sharedlib'] = self.builder_sharedlib
|
||||
@@ -182,6 +183,8 @@ class GCCToolchain(toolchain.Toolchain):
|
||||
flags = []
|
||||
if targettype == 'sharedlib':
|
||||
flags += ['-DBUILD_DYNAMIC_LINK=1']
|
||||
if self.target.is_linux():
|
||||
flags += ['-fPIC']
|
||||
flags += self.make_targetarchflags(arch, targettype)
|
||||
return flags
|
||||
|
||||
@@ -212,6 +215,17 @@ class GCCToolchain(toolchain.Toolchain):
|
||||
|
||||
def make_linkconfigflags(self, config, targettype):
|
||||
flags = []
|
||||
if self.target.is_windows():
|
||||
if targettype == 'sharedlib':
|
||||
flags += ['-Xlinker', '/DLL']
|
||||
elif targettype == 'bin':
|
||||
flags += ['-Xlinker', '/SUBSYSTEM:CONSOLE']
|
||||
else:
|
||||
if targettype == 'sharedlib':
|
||||
if self.target.is_macosx() or self.target.is_ios():
|
||||
flags += ['-dynamiclib']
|
||||
else:
|
||||
flags += ['-shared']
|
||||
return flags
|
||||
|
||||
def make_libs(self, libs):
|
||||
|
||||
@@ -28,7 +28,8 @@ class MSVCToolchain(toolchain.Toolchain):
|
||||
self.linkcmd = '$toolchain$link $libpaths $configlibpaths $linkflags $linkarchflags $linkconfigflags /DEBUG /NOLOGO /SUBSYSTEM:CONSOLE /DYNAMICBASE /NXCOMPAT /MANIFEST /MANIFESTUAC:\"level=\'asInvoker\' uiAccess=\'false\'\" /TLBID:1 /PDB:$pdbpath /OUT:$out $in $libs $archlibs $oslibs'
|
||||
self.dllcmd = self.linkcmd + ' /DLL'
|
||||
|
||||
self.cflags = ['/D', '"' + project.upper() + '_COMPILE=1"', '/D', '"_UNICODE"', '/D', '"UNICODE"', '/Zi', '/W3', '/WX', '/Oi', '/Oy-', '/GS-', '/Gy-', '/Qpar-', '/fp:fast', '/fp:except-', '/Zc:forScope', '/Zc:wchar_t', '/GR-', '/openmp-']
|
||||
self.cflags = ['/D', '"' + project.upper() + '_COMPILE=1"', '/D', '"_UNICODE"', '/D', '"UNICODE"', '/Zi', '/Oi', '/Oy-', '/GS-', '/Gy-', '/Qpar-', '/fp:fast', '/fp:except-', '/Zc:forScope', '/Zc:wchar_t', '/GR-', '/openmp-']
|
||||
self.cwarnflags = ['/W3', '/WX']
|
||||
self.cmoreflags = []
|
||||
self.arflags = ['/ignore:4221'] #Ignore empty object file warning]
|
||||
self.linkflags = ['/DEBUG']
|
||||
@@ -49,11 +50,17 @@ class MSVCToolchain(toolchain.Toolchain):
|
||||
if self.is_monolithic():
|
||||
self.cflags += ['/D', '"BUILD_MONOLITHIC=1"']
|
||||
|
||||
if not 'nowarning' in variables or not variables['nowarning']:
|
||||
self.cflags += self.cwarnflags
|
||||
self.cxxflags = list(self.cflags)
|
||||
|
||||
#Overrides
|
||||
self.objext = '.obj'
|
||||
|
||||
#Builders
|
||||
self.builders['c'] = self.builder_cc
|
||||
self.builders['cc'] = self.builder_cxx
|
||||
self.builders['cpp'] = self.builder_cxx
|
||||
self.builders['lib'] = self.builder_lib
|
||||
self.builders['multilib'] = self.builder_multicopy
|
||||
self.builders['sharedlib'] = self.builder_sharedlib
|
||||
@@ -89,6 +96,7 @@ class MSVCToolchain(toolchain.Toolchain):
|
||||
writer.variable('cflags', self.cflags)
|
||||
writer.variable('carchflags', '')
|
||||
writer.variable('cconfigflags', '')
|
||||
writer.variable('cxxflags', self.cxxflags)
|
||||
writer.variable('cmoreflags', self.cmoreflags)
|
||||
writer.variable('arflags', self.arflags)
|
||||
writer.variable('ararchflags', '')
|
||||
|
||||
@@ -62,3 +62,6 @@ class Platform(object):
|
||||
|
||||
def is_tizen(self):
|
||||
return self.platform == 'tizen'
|
||||
|
||||
def get(self):
|
||||
return self.platform
|
||||
|
||||
@@ -73,7 +73,10 @@ class Toolchain(object):
|
||||
else:
|
||||
self.libprefix = 'lib'
|
||||
self.staticlibext = '.a'
|
||||
self.dynamiclibext = '.so'
|
||||
if target.is_macos() or target.is_ios():
|
||||
self.dynamiclibext = '.dylib'
|
||||
else:
|
||||
self.dynamiclibext = '.so'
|
||||
self.binprefix = ''
|
||||
self.binext = ''
|
||||
|
||||
@@ -156,7 +159,7 @@ class Toolchain(object):
|
||||
self.initialize_default_configs()
|
||||
|
||||
def initialize_default_configs(self):
|
||||
self.configs = ['debug', 'release', 'profile', 'deploy']
|
||||
self.configs = ['debug', 'release'] #, 'profile', 'deploy']
|
||||
|
||||
def initialize_toolchain(self):
|
||||
if self.android != None:
|
||||
|
||||
4
build/rpmalloc.sublime-project
vendored
4
build/rpmalloc.sublime-project
vendored
@@ -13,6 +13,10 @@
|
||||
{
|
||||
"follow_symlinks": true,
|
||||
"path": "../rpmalloc"
|
||||
},
|
||||
{
|
||||
"follow_symlinks": true,
|
||||
"path": "../test"
|
||||
}
|
||||
],
|
||||
"settings":
|
||||
|
||||
15
test/main.c
vendored
15
test/main.c
vendored
@@ -13,18 +13,20 @@
|
||||
#include <string.h>
|
||||
#include <math.h>
|
||||
|
||||
#ifndef ENABLE_GUARDS
|
||||
# define ENABLE_GUARDS 0
|
||||
#endif
|
||||
|
||||
#if ENABLE_GUARDS
|
||||
#ifdef _MSC_VER
|
||||
# define PRIsize "Iu"
|
||||
#else
|
||||
# define PRIsize "zu"
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#define pointer_offset(ptr, ofs) (void*)((char*)(ptr) + (ptrdiff_t)(ofs))
|
||||
#define pointer_diff(first, second) (ptrdiff_t)((const char*)(first) - (const char*)(second))
|
||||
|
||||
#ifndef ENABLE_GUARDS
|
||||
# define ENABLE_GUARDS 0
|
||||
#endif
|
||||
//#define pointer_diff(first, second) (ptrdiff_t)((const char*)(first) - (const char*)(second))
|
||||
|
||||
static int
|
||||
test_alloc(void) {
|
||||
@@ -486,6 +488,7 @@ static int test_overwrite_detected;
|
||||
|
||||
static void
|
||||
test_overwrite_cb(void* addr) {
|
||||
(void)sizeof(addr);
|
||||
++test_overwrite_detected;
|
||||
}
|
||||
|
||||
@@ -543,6 +546,8 @@ test_overwrite(void) {
|
||||
|
||||
int
|
||||
test_run(int argc, char** argv) {
|
||||
(void)sizeof(argc);
|
||||
(void)sizeof(argv);
|
||||
if (test_alloc())
|
||||
return -1;
|
||||
if (test_threaded())
|
||||
|
||||
Reference in New Issue
Block a user