mirror of
https://github.com/nim-lang/Nim.git
synced 2026-04-28 02:03:59 +00:00
fix compilation errors when bootstrapping with C++
This commit is contained in:
@@ -1346,11 +1346,15 @@ when defined(linux) or defined(solaris) or defined(bsd) or defined(aix):
|
||||
setlen(result, len)
|
||||
|
||||
when defined(macosx):
|
||||
type
|
||||
cuint32* {.importc: "unsigned int", nodecl.} = int
|
||||
## This is the same as the type ``uint32_t`` in *C*.
|
||||
|
||||
# a really hacky solution: since we like to include 2 headers we have to
|
||||
# define two procs which in reality are the same
|
||||
proc getExecPath1(c: cstring, size: var int32) {.
|
||||
proc getExecPath1(c: cstring, size: var cuint32) {.
|
||||
importc: "_NSGetExecutablePath", header: "<sys/param.h>".}
|
||||
proc getExecPath2(c: cstring, size: var int32): bool {.
|
||||
proc getExecPath2(c: cstring, size: var cuint32): bool {.
|
||||
importc: "_NSGetExecutablePath", header: "<mach-o/dyld.h>".}
|
||||
|
||||
proc getAppFilename*(): string {.rtl, extern: "nos$1".} =
|
||||
@@ -1379,7 +1383,7 @@ proc getAppFilename*(): string {.rtl, extern: "nos$1".} =
|
||||
elif defined(bsd):
|
||||
result = getApplAux("/proc/" & $getpid() & "/file")
|
||||
elif defined(macosx):
|
||||
var size: int32
|
||||
var size: cuint32
|
||||
getExecPath1(nil, size)
|
||||
result = newString(int(size))
|
||||
if getExecPath2(result, size):
|
||||
|
||||
@@ -123,7 +123,7 @@ when defined(macosx) or defined(bsd):
|
||||
HW_AVAILCPU = 25
|
||||
HW_NCPU = 3
|
||||
proc sysctl(x: ptr array[0..3, cint], y: cint, z: pointer,
|
||||
a: var int, b: pointer, c: int): cint {.
|
||||
a: var csize, b: pointer, c: int): cint {.
|
||||
importc: "sysctl", header: "<sys/sysctl.h>".}
|
||||
|
||||
proc countProcessors*(): int {.rtl, extern: "nosp$1".} =
|
||||
@@ -135,7 +135,8 @@ proc countProcessors*(): int {.rtl, extern: "nosp$1".} =
|
||||
elif defined(macosx) or defined(bsd):
|
||||
var
|
||||
mib: array[0..3, cint]
|
||||
len, numCPU: int
|
||||
numCPU: int
|
||||
len: csize
|
||||
mib[0] = CTL_HW
|
||||
mib[1] = HW_AVAILCPU
|
||||
len = sizeof(numCPU)
|
||||
|
||||
@@ -935,6 +935,8 @@ type # these work for most platforms:
|
||||
## This is the same as the type ``short`` in *C*.
|
||||
cint* {.importc: "int", nodecl.} = int32
|
||||
## This is the same as the type ``int`` in *C*.
|
||||
csize* {.importc: "size_t", nodecl.} = int
|
||||
## This is the same as the type ``size_t`` in *C*.
|
||||
clong* {.importc: "long", nodecl.} = int
|
||||
## This is the same as the type ``long`` in *C*.
|
||||
clonglong* {.importc: "long long", nodecl.} = int64
|
||||
@@ -951,7 +953,7 @@ type # these work for most platforms:
|
||||
## This is binary compatible to the type ``char**`` in *C*. The array's
|
||||
## high value is large enough to disable bounds checking in practice.
|
||||
## Use `cstringArrayToSeq` to convert it into a ``seq[string]``.
|
||||
|
||||
|
||||
PFloat32* = ptr Float32 ## an alias for ``ptr float32``
|
||||
PFloat64* = ptr Float64 ## an alias for ``ptr float64``
|
||||
PInt64* = ptr Int64 ## an alias for ``ptr int64``
|
||||
|
||||
Reference in New Issue
Block a user