auto merge of #10961 : brson/rust/lessc, r=alexcrichton
This commit is contained in:
commit
a1e68debb1
|
@ -10,28 +10,35 @@
|
||||||
|
|
||||||
/* Foreign builtins. */
|
/* Foreign builtins. */
|
||||||
|
|
||||||
#include "rust_globals.h"
|
|
||||||
#include "vg/valgrind.h"
|
#include "vg/valgrind.h"
|
||||||
|
|
||||||
|
#include <stdint.h>
|
||||||
#include <time.h>
|
#include <time.h>
|
||||||
|
#include <string.h>
|
||||||
#ifdef __APPLE__
|
#include <assert.h>
|
||||||
#include <TargetConditionals.h>
|
#include <stdlib.h>
|
||||||
#include <mach/mach_time.h>
|
|
||||||
|
|
||||||
#if (TARGET_OS_IPHONE)
|
|
||||||
extern char **environ;
|
|
||||||
#else
|
|
||||||
#include <crt_externs.h>
|
|
||||||
#endif
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if !defined(__WIN32__)
|
#if !defined(__WIN32__)
|
||||||
#include <sys/time.h>
|
#include <sys/time.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include <dirent.h>
|
||||||
|
#include <signal.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
#include <pthread.h>
|
||||||
|
#else
|
||||||
|
#include <windows.h>
|
||||||
|
#include <wincrypt.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <tchar.h>
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __FreeBSD__
|
#ifdef __APPLE__
|
||||||
extern char **environ;
|
#include <TargetConditionals.h>
|
||||||
|
#include <mach/mach_time.h>
|
||||||
|
|
||||||
|
#if !(TARGET_OS_IPHONE)
|
||||||
|
#include <crt_externs.h>
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#ifdef __ANDROID__
|
#ifdef __ANDROID__
|
||||||
|
@ -57,6 +64,16 @@ timegm(struct tm *tm)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef __APPLE__
|
||||||
|
#if (TARGET_OS_IPHONE)
|
||||||
|
extern char **environ;
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__FreeBSD__) || defined(__linux__) || defined(__ANDROID__)
|
||||||
|
extern char **environ;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if defined(__WIN32__)
|
#if defined(__WIN32__)
|
||||||
char**
|
char**
|
||||||
rust_env_pairs() {
|
rust_env_pairs() {
|
||||||
|
@ -323,8 +340,6 @@ rust_mktime(rust_tm* timeptr) {
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifndef _WIN32
|
#ifndef _WIN32
|
||||||
#include <sys/types.h>
|
|
||||||
#include <dirent.h>
|
|
||||||
|
|
||||||
DIR*
|
DIR*
|
||||||
rust_opendir(char *dirname) {
|
rust_opendir(char *dirname) {
|
||||||
|
@ -419,9 +434,6 @@ rust_unset_sigprocmask() {
|
||||||
|
|
||||||
#else
|
#else
|
||||||
|
|
||||||
#include <signal.h>
|
|
||||||
#include <unistd.h>
|
|
||||||
|
|
||||||
void
|
void
|
||||||
rust_unset_sigprocmask() {
|
rust_unset_sigprocmask() {
|
||||||
// this can't be safely converted to rust code because the
|
// this can't be safely converted to rust code because the
|
||||||
|
|
|
@ -1,120 +0,0 @@
|
||||||
// Copyright 2012 The Rust Project Developers. See the COPYRIGHT
|
|
||||||
// file at the top-level directory of this distribution and at
|
|
||||||
// http://rust-lang.org/COPYRIGHT.
|
|
||||||
//
|
|
||||||
// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
|
|
||||||
// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
|
|
||||||
// option. This file may not be copied, modified, or distributed
|
|
||||||
// except according to those terms.
|
|
||||||
|
|
||||||
#ifndef RUST_GLOBALS_H
|
|
||||||
#define RUST_GLOBALS_H
|
|
||||||
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
#define INLINE inline
|
|
||||||
#elif defined(_MSC_VER) || defined(__GNUC__)
|
|
||||||
#define INLINE __inline__
|
|
||||||
#else
|
|
||||||
#define INLINE inline
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if defined(__GNUC__)
|
|
||||||
#define ALWAYS_INLINE __attribute__((always_inline)) INLINE
|
|
||||||
#elif defined(_MSC_VER)
|
|
||||||
#define ALWAYS_INLINE __forceinline
|
|
||||||
#else
|
|
||||||
#define ALWAYS_INLINE INLINE
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __STDC_LIMIT_MACROS
|
|
||||||
#define __STDC_LIMIT_MACROS 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __STDC_CONSTANT_MACROS
|
|
||||||
#define __STDC_CONSTANT_MACROS 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef __STDC_FORMAT_MACROS
|
|
||||||
#define __STDC_FORMAT_MACROS 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifndef _GNU_SOURCE
|
|
||||||
#define _GNU_SOURCE 1
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define ERROR 0
|
|
||||||
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <stdint.h>
|
|
||||||
#include <inttypes.h>
|
|
||||||
#include <stdarg.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <fcntl.h>
|
|
||||||
#include <math.h>
|
|
||||||
#include <assert.h>
|
|
||||||
|
|
||||||
#if defined(__WIN32__)
|
|
||||||
// Prevent unnecessary #include's from <windows.h>
|
|
||||||
#ifndef WIN32_LEAN_AND_MEAN
|
|
||||||
#define WIN32_LEAN_AND_MEAN
|
|
||||||
#endif
|
|
||||||
// Prevent defining min and max macro
|
|
||||||
#ifndef NOMINMAX
|
|
||||||
#define NOMINMAX
|
|
||||||
#endif
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
extern "C" {
|
|
||||||
#endif
|
|
||||||
#include <windows.h>
|
|
||||||
#include <tchar.h>
|
|
||||||
#include <wincrypt.h>
|
|
||||||
#if defined(__cplusplus)
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
#elif defined(__GNUC__)
|
|
||||||
#include <unistd.h>
|
|
||||||
#include <dlfcn.h>
|
|
||||||
#include <pthread.h>
|
|
||||||
#include <errno.h>
|
|
||||||
#include <dirent.h>
|
|
||||||
|
|
||||||
#define GCC_VERSION (__GNUC__ * 10000 \
|
|
||||||
+ __GNUC_MINOR__ * 100 \
|
|
||||||
+ __GNUC_PATCHLEVEL__)
|
|
||||||
|
|
||||||
#else
|
|
||||||
#error "Platform not supported."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef __i386__
|
|
||||||
// 'cdecl' ABI only means anything on i386
|
|
||||||
#ifdef __WIN32__
|
|
||||||
#ifndef CDECL
|
|
||||||
#define CDECL __cdecl
|
|
||||||
#endif
|
|
||||||
#ifndef FASTCALL
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#define CDECL __attribute__((cdecl))
|
|
||||||
#endif
|
|
||||||
#else
|
|
||||||
#define CDECL
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#define CHECKED(call) \
|
|
||||||
{ \
|
|
||||||
int res = (call); \
|
|
||||||
if(0 != res) { \
|
|
||||||
fprintf(stderr, \
|
|
||||||
#call " failed in %s at line %d, result = %d " \
|
|
||||||
"(%s) \n", \
|
|
||||||
__FILE__, __LINE__, res, strerror(res)); \
|
|
||||||
abort(); \
|
|
||||||
} \
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* RUST_GLOBALS_H */
|
|
|
@ -10,7 +10,8 @@
|
||||||
|
|
||||||
// Helper functions used only in tests
|
// Helper functions used only in tests
|
||||||
|
|
||||||
#include "rust_globals.h"
|
#include <stdint.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
// These functions are used in the unit tests for C ABI calls.
|
// These functions are used in the unit tests for C ABI calls.
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@
|
||||||
switch to the C stack.
|
switch to the C stack.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "rust_globals.h"
|
#include <stdint.h>
|
||||||
|
|
||||||
//Unwinding ABI declarations.
|
//Unwinding ABI declarations.
|
||||||
typedef int _Unwind_Reason_Code;
|
typedef int _Unwind_Reason_Code;
|
||||||
|
|
|
@ -8,6 +8,9 @@
|
||||||
// option. This file may not be copied, modified, or distributed
|
// option. This file may not be copied, modified, or distributed
|
||||||
// except according to those terms.
|
// except according to those terms.
|
||||||
|
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
#ifdef __WIN32__
|
#ifdef __WIN32__
|
||||||
// For alloca
|
// For alloca
|
||||||
#include <malloc.h>
|
#include <malloc.h>
|
||||||
|
@ -20,8 +23,6 @@
|
||||||
|
|
||||||
#include "uv.h"
|
#include "uv.h"
|
||||||
|
|
||||||
#include "rust_globals.h"
|
|
||||||
|
|
||||||
void*
|
void*
|
||||||
rust_uv_loop_new() {
|
rust_uv_loop_new() {
|
||||||
// XXX libuv doesn't always ignore SIGPIPE even though we don't need it.
|
// XXX libuv doesn't always ignore SIGPIPE even though we don't need it.
|
||||||
|
|
Loading…
Reference in New Issue