tcc: support tcc on Windows

pull/5386/head
spaceface777 2020-06-14 23:15:12 +02:00 committed by GitHub
parent c874a22b3b
commit 5f21b152a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 25 additions and 4 deletions

1
.gitignore vendored
View File

@ -61,6 +61,7 @@ fns.txt
cachegrind.out.*
.gdb_history
*.dSYM
*.def
# ignore system files
.DS_Store

View File

@ -71,6 +71,9 @@ fn print_backtrace_skipping_top_frames(skipframes int) bool {
$if msvc {
return print_backtrace_skipping_top_frames_msvc(skipframes)
}
$if tinyc {
return print_backtrace_skipping_top_frames_tcc(skipframes)
}
$if mingw {
return print_backtrace_skipping_top_frames_mingw(skipframes)
}
@ -141,6 +144,16 @@ fn print_backtrace_skipping_top_frames_mingw(skipframes int) bool {
return false
}
fn C.tcc_backtrace(fmt charptr, other ...charptr) int
fn print_backtrace_skipping_top_frames_tcc(skipframes int) bool {
$if tinyc {
C.tcc_backtrace("Backtrace")
return false
} $else {
eprintln('print_backtrace_skipping_top_frames_tcc must be called only when the compiler is tcc')
return false
}
}
//TODO copypaste from os
// we want to be able to use this here without having to `import os`
@ -198,7 +211,14 @@ fn C.IsDebuggerPresent() bool
fn C.__debugbreak()
fn break_if_debugger_attached() {
$if tinyc {
unsafe {
ptr := &voidptr(0)
*ptr = 0
}
} $else {
if C.IsDebuggerPresent() {
C.__debugbreak()
}
}
}

View File

@ -4,7 +4,7 @@
module time
#include <time.h>
#include <sysinfoapi.h>
// #include <sysinfoapi.h>
struct C.tm {
tm_year int

View File

@ -44,7 +44,7 @@ const (
#define __IRQHANDLER
#undef TCCSKIP
#define TCCSKIP(x)
#include <byteswap.h>
// #include <byteswap.h>
#endif
// for __offset_of