cs: unbreak Windows errno
Restores the repair in 6e58310176
, which accomodates certain modes of
compiling the Chez Scheme kernel on Windows.
This commit is contained in:
parent
1fd516c502
commit
cf0e45b763
|
@ -2048,7 +2048,19 @@
|
||||||
[else #f])))
|
[else #f])))
|
||||||
|
|
||||||
;; function is called with interrupts disabled
|
;; function is called with interrupts disabled
|
||||||
(define get-errno (foreign-procedure "(cs)s_errno" () int))
|
(define get-errno
|
||||||
|
(cond
|
||||||
|
[(not (chez:memq (machine-type) '(a6nt ta6nt i3nt ti3nt)))
|
||||||
|
(foreign-procedure "(cs)s_errno" () int)]
|
||||||
|
[else
|
||||||
|
;; On Windows, `errno` could be a different one from
|
||||||
|
;; `_errno` in MSVCRT. Therefore fallback to the foreign function.
|
||||||
|
;; See `save_errno_values` in `foreign.c` from Racket BC for more
|
||||||
|
;; information.
|
||||||
|
(load-shared-object "msvcrt.dll")
|
||||||
|
(let ([get-&errno (foreign-procedure "_errno" () void*)])
|
||||||
|
(lambda ()
|
||||||
|
(foreign-ref 'int (get-&errno) 0)))]))
|
||||||
|
|
||||||
;; function is called with interrupts disabled
|
;; function is called with interrupts disabled
|
||||||
(define get-last-error
|
(define get-last-error
|
||||||
|
|
Loading…
Reference in New Issue
Block a user