Removing LLVM submodule and build information.
Code is still present until transitioned over to libjit.
This commit is contained in:
parent
0aa7d1ec05
commit
1ce68ca7fe
|
@ -1,9 +1,6 @@
|
||||||
[submodule "third_party/ninja"]
|
[submodule "third_party/ninja"]
|
||||||
path = third_party/ninja
|
path = third_party/ninja
|
||||||
url = git://github.com/martine/ninja.git
|
url = git://github.com/martine/ninja.git
|
||||||
[submodule "third_party/llvm"]
|
|
||||||
path = third_party/llvm
|
|
||||||
url = http://llvm.org/git/llvm.git
|
|
||||||
[submodule "third_party/gyp"]
|
[submodule "third_party/gyp"]
|
||||||
path = third_party/gyp
|
path = third_party/gyp
|
||||||
url = https://github.com/benvanik/gyp.git
|
url = https://github.com/benvanik/gyp.git
|
||||||
|
|
55
common.gypi
55
common.gypi
|
@ -12,59 +12,6 @@
|
||||||
|
|
||||||
'library%': 'static_library',
|
'library%': 'static_library',
|
||||||
'target_arch%': 'x64',
|
'target_arch%': 'x64',
|
||||||
|
|
||||||
# LLVM paths.
|
|
||||||
# TODO(benvanik): switch based on configuration.
|
|
||||||
'llvm_path': 'build/llvm/release/',
|
|
||||||
'llvm_config': '<(llvm_path)bin/llvm-config',
|
|
||||||
'llvm_includedir': '<(llvm_path)/include',
|
|
||||||
'llvm_cxxflags': [
|
|
||||||
# ?
|
|
||||||
],
|
|
||||||
'llvm_libdir': '<(llvm_path)/lib',
|
|
||||||
'llvm_libs': [
|
|
||||||
#'pthread',
|
|
||||||
'LLVMCppBackendCodeGen',
|
|
||||||
'LLVMCppBackendInfo',
|
|
||||||
'LLVMAsmParser',
|
|
||||||
'LLVMTableGen',
|
|
||||||
'LLVMDebugInfo',
|
|
||||||
'LLVMX86Disassembler',
|
|
||||||
'LLVMX86AsmParser',
|
|
||||||
'LLVMX86CodeGen',
|
|
||||||
'LLVMSelectionDAG',
|
|
||||||
'LLVMAsmPrinter',
|
|
||||||
'LLVMX86Desc',
|
|
||||||
'LLVMX86Info',
|
|
||||||
'LLVMX86AsmPrinter',
|
|
||||||
'LLVMX86Utils',
|
|
||||||
'LLVMMCDisassembler',
|
|
||||||
'LLVMMCParser',
|
|
||||||
'LLVMInstrumentation',
|
|
||||||
'LLVMOption',
|
|
||||||
'LLVMArchive',
|
|
||||||
'LLVMBitReader',
|
|
||||||
'LLVMInterpreter',
|
|
||||||
'LLVMipo',
|
|
||||||
'LLVMVectorize',
|
|
||||||
'LLVMLinker',
|
|
||||||
'LLVMBitWriter',
|
|
||||||
'LLVMMCJIT',
|
|
||||||
'LLVMJIT',
|
|
||||||
'LLVMCodeGen',
|
|
||||||
'LLVMScalarOpts',
|
|
||||||
'LLVMInstCombine',
|
|
||||||
'LLVMTransformUtils',
|
|
||||||
'LLVMipa',
|
|
||||||
'LLVMAnalysis',
|
|
||||||
'LLVMRuntimeDyld',
|
|
||||||
'LLVMExecutionEngine',
|
|
||||||
'LLVMTarget',
|
|
||||||
'LLVMMC',
|
|
||||||
'LLVMObject',
|
|
||||||
'LLVMCore',
|
|
||||||
'LLVMSupport',
|
|
||||||
],
|
|
||||||
},
|
},
|
||||||
|
|
||||||
'target_defaults': {
|
'target_defaults': {
|
||||||
|
@ -129,7 +76,6 @@
|
||||||
#'LinkIncremental': '1', # 1 = NO, 2 = YES
|
#'LinkIncremental': '1', # 1 = NO, 2 = YES
|
||||||
'TargetMachine': '17', # x86 - 64
|
'TargetMachine': '17', # x86 - 64
|
||||||
'AdditionalLibraryDirectories': [
|
'AdditionalLibraryDirectories': [
|
||||||
'../../<(llvm_libdir)',
|
|
||||||
],
|
],
|
||||||
#'AdditionalLibraryDirectories!':
|
#'AdditionalLibraryDirectories!':
|
||||||
# ['<(DEPTH)/third_party/platformsdk_win7/files/Lib'],
|
# ['<(DEPTH)/third_party/platformsdk_win7/files/Lib'],
|
||||||
|
@ -155,7 +101,6 @@
|
||||||
'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0',
|
'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0',
|
||||||
'WARNING_CFLAGS': ['-Wall', '-Wendif-labels'],
|
'WARNING_CFLAGS': ['-Wall', '-Wendif-labels'],
|
||||||
'LIBRARY_SEARCH_PATHS': [
|
'LIBRARY_SEARCH_PATHS': [
|
||||||
'<@(llvm_libdir)',
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
|
||||||
|
|
|
@ -26,19 +26,11 @@ Pretty much just install what's asked for as you try to `xb setup` or
|
||||||
### Windows
|
### Windows
|
||||||
|
|
||||||
* [Python 2.7](http://www.python.org/download/releases/2.7.3/)
|
* [Python 2.7](http://www.python.org/download/releases/2.7.3/)
|
||||||
* [CMake](http://www.cmake.org/cmake/resources/software.html)
|
|
||||||
|
|
||||||
Install both and add Python to your PATH (`C:\Python27\`).
|
Install both and add Python to your PATH (`C:\Python27\`).
|
||||||
Depending on your Visual Studio version you'll need to use one of the provided
|
Depending on your Visual Studio version you'll need to use one of the provided
|
||||||
command prompts (until I write my own) to perform all `xenia-build` tasks.
|
command prompts (until I write my own) to perform all `xenia-build` tasks.
|
||||||
|
|
||||||
There's a bug in VC++ that breaks with an internal error when building LLVM.
|
|
||||||
Change line 87 of include/llvm/ADT/StringExtras.h:
|
|
||||||
```
|
|
||||||
-static inline std::string utostr(uint64_t X, bool isNeg = false) {
|
|
||||||
+static __declspec(noinline) std::string utostr(uint64_t X, bool isNeg = false) {
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Visual Studio 2010
|
#### Visual Studio 2010
|
||||||
|
|
||||||
The build has been most tested with 2010.
|
The build has been most tested with 2010.
|
||||||
|
@ -113,8 +105,8 @@ have the rebuild xenia and not all of the dependencies.
|
||||||
#### nuke
|
#### nuke
|
||||||
|
|
||||||
Cleans up xenia outputs as well as all dependencies. A full build will be
|
Cleans up xenia outputs as well as all dependencies. A full build will be
|
||||||
required after this - including LLVM - so only do this if you want to reclaim
|
required after this so only do this if you want to reclaim your disk space or
|
||||||
your disk space or something is really wrong.
|
something is really wrong.
|
||||||
|
|
||||||
xb nuke
|
xb nuke
|
||||||
|
|
||||||
|
|
|
@ -18,15 +18,3 @@ fi
|
||||||
--trace_instructions=false \
|
--trace_instructions=false \
|
||||||
--abort_before_entry=true \
|
--abort_before_entry=true \
|
||||||
1>build/run.txt
|
1>build/run.txt
|
||||||
#2>build/run.llvm.txt \
|
|
||||||
|
|
||||||
if [ ! -s build/run.llvm.txt ]; then
|
|
||||||
rm build/run.llvm.txt
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -e build/$1-preopt.bc ]; then
|
|
||||||
./build/llvm/release/bin/llvm-dis build/$1-preopt.bc
|
|
||||||
fi
|
|
||||||
if [ -e build/$1.bc ]; then
|
|
||||||
./build/llvm/release/bin/llvm-dis build/$1.bc
|
|
||||||
fi
|
|
||||||
|
|
|
@ -23,7 +23,7 @@
|
||||||
],
|
],
|
||||||
|
|
||||||
'includes': [
|
'includes': [
|
||||||
'llvmbe/sources.gypi',
|
#'llvmbe/sources.gypi',
|
||||||
'ppc/sources.gypi',
|
'ppc/sources.gypi',
|
||||||
'sdb/sources.gypi',
|
'sdb/sources.gypi',
|
||||||
],
|
],
|
||||||
|
|
|
@ -1 +0,0 @@
|
||||||
Subproject commit c83f6212a79af38f97bc78c44429c1ea3f3995cd
|
|
|
@ -46,7 +46,7 @@ int Run::Setup() {
|
||||||
xe_zero_struct(&pal_options, sizeof(pal_options));
|
xe_zero_struct(&pal_options, sizeof(pal_options));
|
||||||
XEEXPECTZERO(xe_pal_init(pal_options));
|
XEEXPECTZERO(xe_pal_init(pal_options));
|
||||||
|
|
||||||
backend_ = shared_ptr<Backend>(new xe::cpu::llvmbe::LLVMBackend());
|
//backend_ = shared_ptr<Backend>(new xe::cpu::llvmbe::LLVMBackend());
|
||||||
|
|
||||||
debugger_ = shared_ptr<Debugger>(new Debugger());
|
debugger_ = shared_ptr<Debugger>(new Debugger());
|
||||||
|
|
||||||
|
|
|
@ -180,9 +180,7 @@ def post_update_deps(config):
|
||||||
Args:
|
Args:
|
||||||
config: 'debug' or 'release'.
|
config: 'debug' or 'release'.
|
||||||
"""
|
"""
|
||||||
print '- building llvm...'
|
pass
|
||||||
shell_call('ninja -C build/llvm/%s-obj/ install' % (config))
|
|
||||||
print ''
|
|
||||||
|
|
||||||
|
|
||||||
class SetupCommand(Command):
|
class SetupCommand(Command):
|
||||||
|
@ -204,10 +202,6 @@ class SetupCommand(Command):
|
||||||
shell_call('git submodule update')
|
shell_call('git submodule update')
|
||||||
print ''
|
print ''
|
||||||
|
|
||||||
# LLVM needs to pull with --rebase.
|
|
||||||
# TODO(benvanik): any way to do this to just the submodule?
|
|
||||||
#shell_call('git config branch.master.rebase true')
|
|
||||||
|
|
||||||
# Disable core.filemode on Windows to prevent weird file mode diffs in git.
|
# Disable core.filemode on Windows to prevent weird file mode diffs in git.
|
||||||
# TODO(benvanik): check cygwin test - may be wrong when using Windows python
|
# TODO(benvanik): check cygwin test - may be wrong when using Windows python
|
||||||
if os.path.exists('/Cygwin.bat'):
|
if os.path.exists('/Cygwin.bat'):
|
||||||
|
@ -227,22 +221,6 @@ class SetupCommand(Command):
|
||||||
shell_call('python third_party/ninja/bootstrap.py ' + extra_args)
|
shell_call('python third_party/ninja/bootstrap.py ' + extra_args)
|
||||||
print ''
|
print ''
|
||||||
|
|
||||||
# Ensure cmake is present.
|
|
||||||
if not has_bin('cmake'):
|
|
||||||
print '- installing cmake...'
|
|
||||||
if has_bin('brew'):
|
|
||||||
shell_call('brew install cmake')
|
|
||||||
elif has_bin('apt-get'):
|
|
||||||
shell_call('sudo apt-get install cmake')
|
|
||||||
else:
|
|
||||||
print 'ERROR: need to install cmake, use:'
|
|
||||||
print 'http://www.cmake.org/cmake/resources/software.html'
|
|
||||||
print 'Run the Windows installer, select the \'Add to system path\''
|
|
||||||
print 'option and restart your command prompt to ensure it\'s on the'
|
|
||||||
print 'PATH.'
|
|
||||||
return 1
|
|
||||||
print ''
|
|
||||||
|
|
||||||
# Binutils.
|
# Binutils.
|
||||||
# TODO(benvanik): disable on Windows
|
# TODO(benvanik): disable on Windows
|
||||||
print '- binutils...'
|
print '- binutils...'
|
||||||
|
@ -267,35 +245,6 @@ class SetupCommand(Command):
|
||||||
os.chdir(cwd)
|
os.chdir(cwd)
|
||||||
print ''
|
print ''
|
||||||
|
|
||||||
# LLVM.
|
|
||||||
print '- preparing llvm...'
|
|
||||||
generator = ''
|
|
||||||
if False:#sys.platform == 'win32':
|
|
||||||
generator = 'Visual Studio 10 Win64'
|
|
||||||
else:
|
|
||||||
generator = 'Ninja'
|
|
||||||
def prepareLLVM(path, obj_path, mode):
|
|
||||||
os.chdir(cwd)
|
|
||||||
if not os.path.exists(path):
|
|
||||||
os.makedirs(path)
|
|
||||||
if not os.path.exists(obj_path):
|
|
||||||
os.makedirs(obj_path)
|
|
||||||
os.chdir(obj_path)
|
|
||||||
shell_call(' '.join([
|
|
||||||
'cmake',
|
|
||||||
'-G"%s"' % (generator),
|
|
||||||
'-DCMAKE_INSTALL_PREFIX:STRING=../../../%s' % (path),
|
|
||||||
'-DCMAKE_BUILD_TYPE:STRING=%s' % (mode),
|
|
||||||
'-DLLVM_TARGETS_TO_BUILD:STRING="X86;PowerPC;CppBackend"',
|
|
||||||
'-DLLVM_INCLUDE_EXAMPLES:BOOL=OFF',
|
|
||||||
'-DLLVM_INCLUDE_TESTS:BOOL=OFF',
|
|
||||||
'../../../third_party/llvm/',
|
|
||||||
]))
|
|
||||||
os.chdir(cwd)
|
|
||||||
prepareLLVM('build/llvm/debug/', 'build/llvm/debug-obj/', 'Debug')
|
|
||||||
prepareLLVM('build/llvm/release/', 'build/llvm/release-obj/', 'Release')
|
|
||||||
print ''
|
|
||||||
|
|
||||||
post_update_deps('debug')
|
post_update_deps('debug')
|
||||||
post_update_deps('release')
|
post_update_deps('release')
|
||||||
|
|
||||||
|
@ -405,12 +354,6 @@ class BuildCommand(Command):
|
||||||
debug = '--debug' in args
|
debug = '--debug' in args
|
||||||
config = 'debug' if debug else 'release'
|
config = 'debug' if debug else 'release'
|
||||||
|
|
||||||
# If there's no LLVM we may have been cleaned - run setup again.
|
|
||||||
if not os.path.exists('build/llvm/'):
|
|
||||||
print 'Missing LLVM, running setup...'
|
|
||||||
shell_call('python xenia-build.py setup')
|
|
||||||
print ''
|
|
||||||
|
|
||||||
print 'Building %s...' % (config)
|
print 'Building %s...' % (config)
|
||||||
print ''
|
print ''
|
||||||
|
|
||||||
|
|
|
@ -27,34 +27,28 @@
|
||||||
'direct_dependent_settings': {
|
'direct_dependent_settings': {
|
||||||
'include_dirs': [
|
'include_dirs': [
|
||||||
'src/',
|
'src/',
|
||||||
'<@(llvm_includedir)',
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'target_conditions': [
|
'target_conditions': [
|
||||||
['_type=="shared_library"', {
|
['_type=="shared_library"', {
|
||||||
'cflags': [
|
'cflags': [
|
||||||
'<(llvm_cxxflags)',
|
|
||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
['_type=="executable"', {
|
['_type=="executable"', {
|
||||||
'conditions': [
|
'conditions': [
|
||||||
['OS == "win"', {
|
['OS == "win"', {
|
||||||
'libraries': [
|
'libraries': [
|
||||||
'<@(llvm_libs)',
|
|
||||||
'wsock32',
|
'wsock32',
|
||||||
],
|
],
|
||||||
}],
|
}],
|
||||||
['OS == "mac"', {
|
['OS == "mac"', {
|
||||||
'xcode_settings': {
|
'xcode_settings': {
|
||||||
'OTHER_LDFLAGS': [
|
'OTHER_LDFLAGS': [
|
||||||
'<!@(<(llvm_config) --libs all)',
|
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
}],
|
}],
|
||||||
['OS == "linux"', {
|
['OS == "linux"', {
|
||||||
'libraries': [
|
'libraries': [
|
||||||
'-L../../../<@(llvm_libdir)/',
|
|
||||||
'<!@(<(llvm_config) --libs all)',
|
|
||||||
'-lpthread',
|
'-lpthread',
|
||||||
'-ldl',
|
'-ldl',
|
||||||
],
|
],
|
||||||
|
@ -65,13 +59,11 @@
|
||||||
},
|
},
|
||||||
|
|
||||||
'cflags': [
|
'cflags': [
|
||||||
'<(llvm_cxxflags)',
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'include_dirs': [
|
'include_dirs': [
|
||||||
'.',
|
'.',
|
||||||
'src/',
|
'src/',
|
||||||
'<(llvm_includedir)',
|
|
||||||
],
|
],
|
||||||
|
|
||||||
'includes': [
|
'includes': [
|
||||||
|
|
Loading…
Reference in New Issue