Skip to content

Commit 355ab63

Browse files
committed
---
yaml --- r: 53823 b: refs/heads/dist-snap c: 0ad3a11 h: refs/heads/master i: 53821: 2b45964 53819: 78b645e 53815: 5a9e3a4 53807: f2dc413 53791: f0c8739 53759: 2473e58 v: v3
1 parent e67d938 commit 355ab63

File tree

9 files changed

+87
-76
lines changed

9 files changed

+87
-76
lines changed

[refs]

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ refs/tags/release-0.1: 1f5c5126e96c79d22cb7862f75304136e204f105
77
refs/heads/ndm: f3868061cd7988080c30d6d5bf352a5a5fe2460b
88
refs/heads/try2: 147ecfdd8221e4a4d4e090486829a06da1e0ca3c
99
refs/heads/incoming: 44d4d6de762f3f9aae1fedcf454c66b79b3ad58d
10-
refs/heads/dist-snap: 268faef63adc5d52c9bdfbb6e8b44a307f4528d8
10+
refs/heads/dist-snap: 0ad3a110be9070b87ecd7e1c71d20a02660d8959
1111
refs/tags/release-0.2: c870d2dffb391e14efb05aa27898f1f6333a9596
1212
refs/tags/release-0.3: b5f0d0f648d9a6153664837026ba1be43d3e2503
1313
refs/heads/try3: 9387340aab40a73e8424c48fd42f0c521a4875c0

branches/dist-snap/mk/platform.mk

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -215,31 +215,31 @@ CFG_LDPATH_i686-apple-darwin :=
215215
CFG_RUN_i686-apple-darwin=$(2)
216216
CFG_RUN_TARG_i686-apple-darwin=$(call CFG_RUN_i686-apple-darwin,,$(2))
217217

218-
# arm-linux-androideabi configuration
219-
CC_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc
220-
CXX_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-g++
221-
CPP_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc
222-
AR_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-ar
223-
CFG_LIB_NAME_arm-linux-androideabi=lib$(1).so
224-
CFG_LIB_GLOB_arm-linux-androideabi=lib$(1)-*.so
225-
CFG_LIB_DSYM_GLOB_arm-linux-androideabi=lib$(1)-*.dylib.dSYM
226-
CFG_GCCISH_CFLAGS_arm-linux-androideabi := -Wall -g -fPIC -D__arm__ -DANDROID -D__ANDROID__
227-
CFG_GCCISH_CXXFLAGS_arm-linux-androideabi := -fno-rtti
228-
CFG_GCCISH_LINK_FLAGS_arm-linux-androideabi := -shared -fPIC -ldl -g -lm -lsupc++ -lgnustl_shared
229-
CFG_GCCISH_DEF_FLAG_arm-linux-androideabi := -Wl,--export-dynamic,--dynamic-list=
230-
CFG_GCCISH_PRE_LIB_FLAGS_arm-linux-androideabi := -Wl,-whole-archive
231-
CFG_GCCISH_POST_LIB_FLAGS_arm-linux-androideabi := -Wl,-no-whole-archive -Wl,-znoexecstack
232-
CFG_DEF_SUFFIX_arm-linux-androideabi := .android.def
233-
CFG_INSTALL_NAME_arm-linux-androideabi =
234-
CFG_LIBUV_LINK_FLAGS_arm-linux-androideabi =
235-
CFG_EXE_SUFFIX_arm-linux-androideabi :=
236-
CFG_WINDOWSY_arm-linux-androideabi :=
237-
CFG_UNIXY_arm-linux-androideabi := 1
238-
CFG_PATH_MUNGE_arm-linux-androideabi := true
239-
CFG_LDPATH_arm-linux-androideabi :=
240-
CFG_RUN_arm-linux-androideabi=
241-
CFG_RUN_TARG_arm-linux-androideabi=
242-
RUSTC_FLAGS_arm-linux-androideabi :=--android-cross-path=$(CFG_ANDROID_CROSS_PATH)
218+
# arm-unknown-android configuration
219+
CC_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc
220+
CXX_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-g++
221+
CPP_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc -E
222+
AR_arm-unknown-android=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-ar
223+
CFG_LIB_NAME_arm-unknown-android=lib$(1).so
224+
CFG_LIB_GLOB_arm-unknown-android=lib$(1)-*.so
225+
CFG_LIB_DSYM_GLOB_arm-unknown-android=lib$(1)-*.dylib.dSYM
226+
CFG_GCCISH_CFLAGS_arm-unknown-android := -Wall -g -fPIC -D__arm__ -DANDROID -D__ANDROID__
227+
CFG_GCCISH_CXXFLAGS_arm-unknown-android := -fno-rtti
228+
CFG_GCCISH_LINK_FLAGS_arm-unknown-android := -shared -fPIC -ldl -g -lm -lsupc++ -lgnustl_shared
229+
CFG_GCCISH_DEF_FLAG_arm-unknown-android := -Wl,--export-dynamic,--dynamic-list=
230+
CFG_GCCISH_PRE_LIB_FLAGS_arm-unknown-android := -Wl,-whole-archive
231+
CFG_GCCISH_POST_LIB_FLAGS_arm-unknown-android := -Wl,-no-whole-archive -Wl,-znoexecstack
232+
CFG_DEF_SUFFIX_arm-unknown-android := .android.def
233+
CFG_INSTALL_NAME_arm-unknown-android =
234+
CFG_LIBUV_LINK_FLAGS_arm-unknown-android =
235+
CFG_EXE_SUFFIX_arm-unknown-android :=
236+
CFG_WINDOWSY_arm-unknown-android :=
237+
CFG_UNIXY_arm-unknown-android := 1
238+
CFG_PATH_MUNGE_arm-unknown-android := true
239+
CFG_LDPATH_arm-unknown-android :=
240+
CFG_RUN_arm-unknown-android=
241+
CFG_RUN_TARG_arm-unknown-android=
242+
RUSTC_FLAGS_arm-unknown-android :=--android-cross-path=$(CFG_ANDROID_CROSS_PATH)
243243

244244
# i686-pc-mingw32 configuration
245245
CC_i686-pc-mingw32=$(CC)
@@ -267,22 +267,22 @@ CFG_RUN_i686-pc-mingw32=PATH="$(CFG_LDPATH_i686-pc-mingw32):$(1)" $(2)
267267
CFG_RUN_TARG_i686-pc-mingw32=$(call CFG_RUN_i686-pc-mingw32,$(HLIB$(1)_H_$(CFG_BUILD_TRIPLE)),$(2))
268268

269269
# i586-mingw32msvc configuration
270-
CC_i586-mingw32msvc=$(CFG_MINGW32_CROSS_PATH)/bin/i586-mingw32msvc-gcc
271-
CXX_i586-mingw32msvc=$(CFG_MINGW32_CROSS_PATH)/bin/i586-mingw32msvc-g++
272-
CPP_i586-mingw32msvc=$(CFG_MINGW32_CROSS_PATH)/bin/i586-mingw32msvc-cpp
273-
AR_i586-mingw32msvc=$(CFG_MINGW32_CROSS_PATH)/bin/i586-mingw32msvc-ar
270+
CC_i586-mingw32msvc=$(CC)
271+
CXX_i586-mingw32msvc=$(CXX)
272+
CPP_i586-mingw32msvc=$(CPP)
273+
AR_i586-mingw32msvc=$(AR)
274274
CFG_LIB_NAME_i586-mingw32msvc=$(1).dll
275275
CFG_LIB_GLOB_i586-mingw32msvc=$(1)-*.dll
276276
CFG_LIB_DSYM_GLOB_i586-mingw32msvc=$(1)-*.dylib.dSYM
277-
CFG_GCCISH_CFLAGS_i586-mingw32msvc := -Wall -Werror -g -march=i586 -m32
277+
CFG_GCCISH_CFLAGS_i586-mingw32msvc := -Wall -Werror -g -march=586 -m32
278278
CFG_GCCISH_CXXFLAGS_i586-mingw32msvc := -fno-rtti
279279
CFG_GCCISH_LINK_FLAGS_i586-mingw32msvc := -shared -g -m32
280280
CFG_GCCISH_DEF_FLAG_i586-mingw32msvc :=
281281
CFG_GCCISH_PRE_LIB_FLAGS_i586-mingw32msvc :=
282282
CFG_GCCISH_POST_LIB_FLAGS_i586-mingw32msvc :=
283283
CFG_DEF_SUFFIX_i586-mingw32msvc := .mingw32.def
284284
CFG_INSTALL_NAME_i586-mingw32msvc =
285-
CFG_LIBUV_LINK_FLAGS_i586-mingw32msvc := -L$(CFG_MINGW32_CROSS_PATH)/i586-mingw32msvc/lib -lws2_32 -lpsapi -liphlpapi
285+
CFG_LIBUV_LINK_FLAGS_i586-mingw32msvc := -lWs2_32 -lpsapi -liphlpapi
286286
CFG_EXE_SUFFIX_i586-mingw32msvc := .exe
287287
CFG_WINDOWSY_i586-mingw32msvc := 1
288288
CFG_UNIXY_i586-mingw32msvc :=
@@ -342,7 +342,7 @@ define CFG_MAKE_TOOLCHAIN
342342
$$(CFG_GCCISH_DEF_FLAG_$(1))$$(3) $$(2) \
343343
$$(call CFG_INSTALL_NAME_$(1),$$(4))
344344

345-
ifneq ($(1),arm-linux-androideabi)
345+
ifneq ($(1),arm-unknown-android)
346346

347347
# We're using llvm-mc as our assembler because it supports
348348
# .cfi pseudo-ops on mac
@@ -356,7 +356,7 @@ define CFG_MAKE_TOOLCHAIN
356356

357357
# For the Android cross, use the Android assembler
358358
# XXX: We should be able to use the LLVM assembler
359-
CFG_ASSEMBLE_$(1)=$$(CPP_$(1)) $$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1)
359+
CFG_ASSEMBLE_$(1)=$$(CXX_$(1)) $$(CFG_DEPEND_FLAGS) $$(2) -c -o $$(1)
360360

361361
endif
362362

branches/dist-snap/mk/rt.mk

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ else ifeq ($(OSTYPE_$(1)), apple-darwin)
9292
else ifeq ($(OSTYPE_$(1)), unknown-freebsd)
9393
LIBUV_OSTYPE_$(1) := unix/freebsd
9494
LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a
95-
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
95+
else ifeq ($(OSTYPE_$(1)), unknown-android)
9696
LIBUV_OSTYPE_$(1) := unix/android
9797
LIBUV_LIB_$(1) := rt/$(1)/libuv/libuv.a
9898
else
@@ -164,7 +164,7 @@ $$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
164164
builddir_name="$$(CFG_BUILD_DIR)/rt/$(1)/libuv" \
165165
OS=mingw \
166166
V=$$(VERBOSE)
167-
else ifeq ($(OSTYPE_$(1)), linux-androideabi)
167+
else ifeq ($(OSTYPE_$(1)), unknown-android)
168168
$$(LIBUV_LIB_$(1)): $$(LIBUV_DEPS)
169169
$$(Q)$$(MAKE) -C $$(S)src/libuv/ \
170170
CFLAGS="$$(LIBUV_FLAGS_$$(HOST_$(1))) $$(SNAP_DEFINES)" \

branches/dist-snap/src/libcore/libc.rs

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1385,48 +1385,30 @@ pub mod funcs {
13851385
use libc::types::common::posix88::{DIR, dirent_t};
13861386
use libc::types::os::arch::c95::{c_char, c_int, c_long};
13871387

1388-
pub extern {
1389-
// default bindings for opendir and readdir in
1390-
// non-macos unix
1391-
#[cfg(target_os = "linux")]
1392-
#[cfg(target_os = "android")]
1393-
#[cfg(target_os = "freebsd")]
1394-
unsafe fn opendir(dirname: *c_char) -> *DIR;
1395-
#[cfg(target_os = "linux")]
1396-
#[cfg(target_os = "android")]
1397-
#[cfg(target_os = "freebsd")]
1398-
unsafe fn readdir(dirp: *DIR) -> *dirent_t;
1388+
// NOTE: On OS X opendir and readdir have two versions,
1389+
// one for 32-bit kernelspace and one for 64.
1390+
// We should be linking to the 64-bit ones, called
1391+
// opendir$INODE64, etc. but for some reason rustc
1392+
// doesn't link it correctly on i686, so we're going
1393+
// through a C function that mysteriously does work.
1394+
pub unsafe fn opendir(dirname: *c_char) -> *DIR {
1395+
rust_opendir(dirname)
1396+
}
1397+
pub unsafe fn readdir(dirp: *DIR) -> *dirent_t {
1398+
rust_readdir(dirp)
1399+
}
1400+
1401+
extern {
1402+
unsafe fn rust_opendir(dirname: *c_char) -> *DIR;
1403+
unsafe fn rust_readdir(dirp: *DIR) -> *dirent_t;
1404+
}
13991405

1406+
pub extern {
14001407
unsafe fn closedir(dirp: *DIR) -> c_int;
14011408
unsafe fn rewinddir(dirp: *DIR);
14021409
unsafe fn seekdir(dirp: *DIR, loc: c_long);
14031410
unsafe fn telldir(dirp: *DIR) -> c_long;
14041411
}
1405-
1406-
#[cfg(target_word_size = "64")]
1407-
pub extern {
1408-
// on OSX (particularly when running with a
1409-
// 64bit kernel), we have an issue where there
1410-
// are separate bindings for opendir and readdir,
1411-
// which we have to explicitly link, as below.
1412-
#[cfg(target_os = "macos")]
1413-
#[link_name = "opendir$INODE64"]
1414-
unsafe fn opendir(dirname: *c_char) -> *DIR;
1415-
#[cfg(target_os = "macos")]
1416-
#[link_name = "readdir$INODE64"]
1417-
unsafe fn readdir(dirp: *DIR) -> *dirent_t;
1418-
}
1419-
#[cfg(target_word_size = "32")]
1420-
pub extern {
1421-
// on OSX (particularly when running with a
1422-
// 64bit kernel), we have an issue where there
1423-
// are separate bindings for opendir and readdir,
1424-
// which we have to explicitly link, as below.
1425-
#[cfg(target_os = "macos")]
1426-
unsafe fn opendir(dirname: *c_char) -> *DIR;
1427-
#[cfg(target_os = "macos")]
1428-
unsafe fn readdir(dirp: *DIR) -> *dirent_t;
1429-
}
14301412
}
14311413

14321414
#[nolink]

branches/dist-snap/src/librustc/back/arm.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ pub fn get_target_strs(target_os: session::os) -> target_strs::t {
6565
session::os_macos => ~"arm-apple-darwin",
6666
session::os_win32 => ~"arm-pc-mingw32",
6767
session::os_linux => ~"arm-unknown-linux",
68-
session::os_android => ~"arm-linux-androideabi",
68+
session::os_android => ~"arm-unknown-android",
6969
session::os_freebsd => ~"arm-unknown-freebsd"
7070
},
7171

branches/dist-snap/src/librustc/driver/driver.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -446,10 +446,10 @@ pub fn get_os(triple: ~str) -> Option<session::os> {
446446
Some(session::os_win32)
447447
} else if str::contains(triple, ~"darwin") {
448448
Some(session::os_macos)
449-
} else if str::contains(triple, ~"android") {
450-
Some(session::os_android)
451449
} else if str::contains(triple, ~"linux") {
452450
Some(session::os_linux)
451+
} else if str::contains(triple, ~"android") {
452+
Some(session::os_android)
453453
} else if str::contains(triple, ~"freebsd") {
454454
Some(session::os_freebsd)
455455
} else { None }

branches/dist-snap/src/libuv

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
Subproject commit 218ab86721eefd7b7e97fa6d9f95a80a1fa8686c
1+
Subproject commit 576ab1db8ea03889eb7b2274654afe7c5c867230

branches/dist-snap/src/rt/rust_builtin.cpp

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -818,6 +818,33 @@ rust_dec_kernel_live_count() {
818818
task->kernel->dec_live_count();
819819
}
820820

821+
#ifndef _WIN32
822+
#include <sys/types.h>
823+
#include <dirent.h>
824+
825+
extern "C" DIR*
826+
rust_opendir(char *dirname) {
827+
return opendir(dirname);
828+
}
829+
830+
extern "C" dirent*
831+
rust_readdir(DIR *dirp) {
832+
return readdir(dirp);
833+
}
834+
835+
#else
836+
837+
extern "C" void
838+
rust_opendir() {
839+
}
840+
841+
extern "C" void
842+
rust_readdir() {
843+
}
844+
845+
#endif
846+
847+
821848
//
822849
// Local Variables:
823850
// mode: C++

branches/dist-snap/src/rt/rustrt.def.in

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -194,3 +194,5 @@ rust_dec_kernel_live_count
194194
rust_get_exchange_count_ptr
195195
rust_get_sched_tls_key
196196
swap_registers
197+
rust_readdir
198+
rust_opendir

0 commit comments

Comments
 (0)