Skip to content

Commit 0955f98

Browse files
vadimcnemberian
authored andcommitted
Windows (and not only) fixes
1 parent a3c8e5e commit 0955f98

File tree

13 files changed

+64
-65
lines changed

13 files changed

+64
-65
lines changed

configure

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,10 @@ case $CFG_OSTYPE in
312312
CFG_CPUTYPE=x86_64
313313
fi
314314

315+
MSYS*)
316+
CFG_OSTYPE=pc-windows-gnu
317+
;;
318+
315319
# Thad's Cygwin identifers below
316320

317321
# Vista 32 bit
@@ -420,7 +424,6 @@ opt debug 1 "build with extra debug fun"
420424
opt ratchet-bench 0 "ratchet benchmarks"
421425
opt fast-make 0 "use .gitmodules as timestamp for submodule deps"
422426
opt manage-submodules 1 "let the build manage the git submodules"
423-
opt mingw-cross 0 "cross-compile for win32 using mingw"
424427
opt clang 0 "prefer clang to gcc for building the runtime"
425428
opt ccache 0 "invoke gcc/clang via ccache to reuse object files between builds"
426429
opt local-rust 0 "use an installed rustc rather than downloading a snapshot"
@@ -438,7 +441,6 @@ valopt llvm-root "" "set LLVM root"
438441
valopt jemalloc-root "" "set directory where libjemalloc_pic.a is located"
439442
valopt libuv-root "" "set directory where libuv.a is located"
440443
valopt android-cross-path "/opt/ndk_standalone" "Android NDK standalone path"
441-
valopt mingw32-cross-path "" "MinGW32 cross compiler path"
442444

443445
valopt build "${DEFAULT_BUILD}" "GNUs ./configure syntax LLVM build triple"
444446
valopt host "${CFG_BUILD}" "GNUs ./configure syntax LLVM host triples"
@@ -456,7 +458,7 @@ valopt mandir "${CFG_PREFIX}/share/man" "install man pages in PATH"
456458
# --libdir is used to configure the installation directory.
457459
# FIXME: Thise needs to parameterized over target triples. Do it in platform.mk
458460
CFG_LIBDIR_RELATIVE=lib
459-
if [ "$CFG_OSTYPE" = "pc-mingw32" ] || [ "$CFG_OSTYPE" = "w64-mingw32" ]
461+
if [ "$CFG_OSTYPE" = "pc-windows-gnu" ]
460462
then
461463
CFG_LIBDIR_RELATIVE=bin
462464
fi
@@ -554,7 +556,7 @@ then
554556
fi
555557

556558
BIN_SUF=
557-
if [ "$CFG_OSTYPE" = "pc-mingw32" ] || [ "$CFG_OSTYPE" = "w64-mingw32" ]
559+
if [ "$CFG_OSTYPE" = "pc-windows-gnu" ]
558560
then
559561
BIN_SUF=.exe
560562
fi
@@ -1012,12 +1014,22 @@ do
10121014

10131015
if [ ${do_reconfigure} -ne 0 ]
10141016
then
1015-
msg "configuring LLVM for $t"
1017+
# LLVM's configure doesn't recognize the new Windows triples yet
1018+
case $t in
1019+
i686-pc-windows-gnu)
1020+
gnu_t="i686-w64-mingw32" ;;
1021+
x86_64-pc-windows-gnu)
1022+
gnu_t="x86_64-w64-mingw32" ;;
1023+
*)
1024+
gnu_t=$t ;;
1025+
esac
1026+
1027+
msg "configuring LLVM for $gnu_t"
10161028

10171029
LLVM_TARGETS="--enable-targets=x86,x86_64,arm,mips"
1018-
LLVM_BUILD="--build=$t"
1019-
LLVM_HOST="--host=$t"
1020-
LLVM_TARGET="--target=$t"
1030+
LLVM_BUILD="--build=$gnu_t"
1031+
LLVM_HOST="--host=$gnu_t"
1032+
LLVM_TARGET="--target=$gnu_t"
10211033

10221034
# Disable unused LLVM features
10231035
LLVM_OPTS="$LLVM_DBG_OPTS $LLVM_ASSERTION_OPTS --disable-docs --enable-bindings=none"
@@ -1031,7 +1043,7 @@ do
10311043
# (llvm's configure tries to find pthread first, so we have to disable it explicitly.)
10321044
# Also note that pthreads works badly on mingw-w64 systems: #8996
10331045
case "$CFG_BUILD" in
1034-
(*-mingw32)
1046+
(*-windows-*)
10351047
LLVM_OPTS="$LLVM_OPTS --disable-pthreads"
10361048
;;
10371049
esac
@@ -1184,7 +1196,6 @@ putvar CFG_LIBDIR
11841196
putvar CFG_LIBDIR_RELATIVE
11851197
putvar CFG_DISABLE_MANAGE_SUBMODULES
11861198
putvar CFG_ANDROID_CROSS_PATH
1187-
putvar CFG_MINGW32_CROSS_PATH
11881199
putvar CFG_MANDIR
11891200
putvar CFG_DISABLE_INJECT_STD_VERSION
11901201
putvar CFG_JEMALLOC_ROOT

mk/main.mk

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -291,7 +291,6 @@ export CFG_RELEASE
291291
export CFG_PACKAGE_NAME
292292
export CFG_BUILD
293293
export CFG_LLVM_ROOT
294-
export CFG_ENABLE_MINGW_CROSS
295294
export CFG_PREFIX
296295
export CFG_LIBDIR
297296
export CFG_LIBDIR_RELATIVE

mk/platform.mk

Lines changed: 18 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -126,6 +126,7 @@ CFG_PATH_MUNGE_x86_64-unknown-linux-gnu := true
126126
CFG_LDPATH_x86_64-unknown-linux-gnu :=
127127
CFG_RUN_x86_64-unknown-linux-gnu=$(2)
128128
CFG_RUN_TARG_x86_64-unknown-linux-gnu=$(call CFG_RUN_x86_64-unknown-linux-gnu,,$(2))
129+
CFG_GNU_TRIPLE_x86_64-unknown-linux-gnu=x86_64-unknown-linux-gnu
129130

130131
# i686-unknown-linux-gnu configuration
131132
CC_i686-unknown-linux-gnu=$(CC)
@@ -154,6 +155,7 @@ CFG_PATH_MUNGE_i686-unknown-linux-gnu := true
154155
CFG_LDPATH_i686-unknown-linux-gnu :=
155156
CFG_RUN_i686-unknown-linux-gnu=$(2)
156157
CFG_RUN_TARG_i686-unknown-linux-gnu=$(call CFG_RUN_i686-unknown-linux-gnu,,$(2))
158+
CFG_GNU_TRIPLE_i686-unknown-linux-gnu=i686-unknown-linux-gnu
157159

158160
# arm-apple-darwin configuration
159161
CFG_SDK_NAME_arm-apple-darwin = iphoneos
@@ -190,6 +192,7 @@ CFG_RUN_arm-apple-darwin = $(2)
190192
CFG_RUN_TARG_arm-apple-darwin = $(call CFG_RUN_arm-apple-darwin,,$(2))
191193
RUSTC_FLAGS_arm-apple-darwin := -C relocation_model=pic
192194
RUSTC_CROSS_FLAGS_arm-apple-darwin :=-C relocation_model=pic
195+
CFG_GNU_TRIPLE_arm-apple-darwin=arm-apple-darwin
193196

194197
# i386-apple-darwin configuration
195198
CFG_SDK_NAME_i386-apple-darwin = iphonesimulator
@@ -225,6 +228,7 @@ CFG_LDPATH_i386-apple-darwin =
225228
CFG_RUN_i386-apple-darwin = $(2)
226229
CFG_RUN_TARG_i386-apple-darwin = $(call CFG_RUN_i386-apple-darwin,,$(2))
227230
CFG_JEMALLOC_CFLAGS_i386-apple-darwin = -target i386-apple-darwin -Wl,-syslibroot $(CFG_IOSSIM_SDK) -Wl,-no_compact_unwind
231+
CFG_GNU_TRIPLE_i386-apple-darwin=i386-apple-darwin
228232

229233
# x86_64-apple-darwin configuration
230234
CC_x86_64-apple-darwin=$(CC)
@@ -253,6 +257,7 @@ CFG_PATH_MUNGE_x86_64-apple-darwin := true
253257
CFG_LDPATH_x86_64-apple-darwin :=
254258
CFG_RUN_x86_64-apple-darwin=$(2)
255259
CFG_RUN_TARG_x86_64-apple-darwin=$(call CFG_RUN_x86_64-apple-darwin,,$(2))
260+
CFG_GNU_TRIPLE_x86_64-apple-darwin=x86_64-apple-darwin
256261

257262
# i686-apple-darwin configuration
258263
CC_i686-apple-darwin=$(CC)
@@ -281,6 +286,7 @@ CFG_PATH_MUNGE_i686-apple-darwin := true
281286
CFG_LDPATH_i686-apple-darwin :=
282287
CFG_RUN_i686-apple-darwin=$(2)
283288
CFG_RUN_TARG_i686-apple-darwin=$(call CFG_RUN_i686-apple-darwin,,$(2))
289+
CFG_GNU_TRIPLE_i686-apple-darwin=i686-apple-darwin
284290

285291
# arm-linux-androideabi configuration
286292
CC_arm-linux-androideabi=$(CFG_ANDROID_CROSS_PATH)/bin/arm-linux-androideabi-gcc
@@ -311,6 +317,7 @@ CFG_RUN_arm-linux-androideabi=
311317
CFG_RUN_TARG_arm-linux-androideabi=
312318
RUSTC_FLAGS_arm-linux-androideabi :=
313319
RUSTC_CROSS_FLAGS_arm-linux-androideabi :=
320+
CFG_GNU_TRIPLE_arm-linux-androideabi=arm-linux-androideabi
314321

315322
# arm-unknown-linux-gnueabihf configuration
316323
CROSS_PREFIX_arm-unknown-linux-gnueabihf=arm-linux-gnueabihf-
@@ -342,6 +349,7 @@ CFG_RUN_arm-unknown-linux-gnueabihf=$(2)
342349
CFG_RUN_TARG_arm-unknown-linux-gnueabihf=$(call CFG_RUN_arm-unknown-linux-gnueabihf,,$(2))
343350
RUSTC_FLAGS_arm-unknown-linux-gnueabihf := -C target-feature=+v6,+vfp2
344351
RUSTC_CROSS_FLAGS_arm-unknown-linux-gnueabihf :=
352+
CFG_GNU_TRIPLE_arm-unknown-linux-gnueabihf=arm-unknown-linux-gnueabihf
345353

346354
# arm-unknown-linux-gnueabi configuration
347355
CROSS_PREFIX_arm-unknown-linux-gnueabi=arm-linux-gnueabi-
@@ -373,6 +381,7 @@ CFG_RUN_arm-unknown-linux-gnueabi=$(2)
373381
CFG_RUN_TARG_arm-unknown-linux-gnueabi=$(call CFG_RUN_arm-unknown-linux-gnueabi,,$(2))
374382
RUSTC_FLAGS_arm-unknown-linux-gnueabi :=
375383
RUSTC_CROSS_FLAGS_arm-unknown-linux-gnueabi :=
384+
CFG_GNU_TRIPLE_arm-unknown-linux-gnueabi=arm-unknown-linux-gnueabi
376385

377386
# mipsel-unknown-linux-gnu configuration
378387
CC_mipsel-unknown-linux-gnu=mipsel-unknown-linux-gnu-gcc
@@ -402,6 +411,7 @@ CFG_LDPATH_mipsel-unknown-linux-gnu :=
402411
CFG_RUN_mipsel-unknown-linux-gnu=
403412
CFG_RUN_TARG_mipsel-unknown-linux-gnu=
404413
RUSTC_FLAGS_mipsel-unknown-linux-gnu := -C target-cpu=mips32 -C target-feature="+mips32,+o32"
414+
CFG_GNU_TRIPLE_mipsel-unknown-linux-gnu=mipsel-unknown-linux-gnu
405415

406416

407417
# mips-unknown-linux-gnu configuration
@@ -432,36 +442,7 @@ CFG_LDPATH_mips-unknown-linux-gnu :=
432442
CFG_RUN_mips-unknown-linux-gnu=
433443
CFG_RUN_TARG_mips-unknown-linux-gnu=
434444
RUSTC_FLAGS_mips-unknown-linux-gnu := -C target-cpu=mips32r2 -C target-feature="+mips32r2,+o32" -C soft-float
435-
436-
# i686-pc-windows-gnu configuration
437-
CC_i686-pc-windows-gnu=$(CC)
438-
CXX_i686-pc-windows-gnu=$(CXX)
439-
CPP_i686-pc-windows-gnu=$(CPP)
440-
AR_i686-pc-windows-gnu=$(AR)
441-
CFG_LIB_NAME_i686-pc-windows-gnu=$(1).dll
442-
CFG_STATIC_LIB_NAME_i686-pc-windows-gnu=$(1).lib
443-
CFG_LIB_GLOB_i686-pc-windows-gnu=$(1)-*.dll
444-
CFG_LIB_DSYM_GLOB_i686-pc-windows-gnu=$(1)-*.dylib.dSYM
445-
CFG_CFLAGS_mips-i686-pc-windows-gnu := -m32 -march=i686 -D_WIN32_WINNT=0x0600 $(CFLAGS)
446-
CFG_GCCISH_CFLAGS_i686-pc-windows-gnu := -Wall -Werror -g -m32 -march=i686 -D_WIN32_WINNT=0x0600 -I$(CFG_SRC_DIR)src/etc/mingw-fix-include $(CFLAGS)
447-
CFG_GCCISH_CXXFLAGS_i686-pc-windows-gnu := -fno-rtti $(CXXFLAGS)
448-
CFG_GCCISH_LINK_FLAGS_i686-pc-windows-gnu := -shared -fPIC -g -m32
449-
CFG_GCCISH_DEF_FLAG_i686-pc-windows-gnu :=
450-
CFG_GCCISH_PRE_LIB_FLAGS_i686-pc-windows-gnu :=
451-
CFG_GCCISH_POST_LIB_FLAGS_i686-pc-windows-gnu :=
452-
CFG_DEF_SUFFIX_i686-pc-windows-gnu := .mingw32.def
453-
CFG_LLC_FLAGS_i686-pc-windows-gnu :=
454-
CFG_INSTALL_NAME_i686-pc-windows-gnu =
455-
CFG_LIBUV_LINK_FLAGS_i686-pc-windows-gnu := -lws2_32 -lpsapi -liphlpapi
456-
CFG_LLVM_BUILD_ENV_i686-pc-windows-gnu := CPATH=$(CFG_SRC_DIR)src/etc/mingw-fix-include
457-
CFG_EXE_SUFFIX_i686-pc-windows-gnu := .exe
458-
CFG_WINDOWSY_i686-pc-windows-gnu := 1
459-
CFG_UNIXY_i686-pc-windows-gnu :=
460-
CFG_PATH_MUNGE_i686-pc-windows-gnu :=
461-
CFG_LDPATH_i686-pc-windows-gnu :=$(CFG_LDPATH_i686-pc-windows-gnu):$(PATH)
462-
CFG_RUN_i686-pc-windows-gnu=PATH="$(CFG_LDPATH_i686-pc-windows-gnu):$(1)" $(2)
463-
CFG_RUN_TARG_i686-pc-windows-gnu=$(call CFG_RUN_i686-pc-windows-gnu,$(HLIB$(1)_H_$(CFG_BUILD)),$(2))
464-
RUSTC_FLAGS_i686-pc-windows-gnu=-C link-args="-Wl,--large-address-aware"
445+
CFG_GNU_TRIPLE_mips-unknown-linux-gnu=mips-unknown-linux-gnu
465446

466447
# i686-pc-windows-gnu configuration
467448
CROSS_PREFIX_i686-pc-windows-gnu=i686-pc-windows-gnu-
@@ -473,14 +454,14 @@ CFG_LIB_NAME_i686-pc-windows-gnu=$(1).dll
473454
CFG_STATIC_LIB_NAME_i686-pc-windows-gnu=$(1).lib
474455
CFG_LIB_GLOB_i686-pc-windows-gnu=$(1)-*.dll
475456
CFG_LIB_DSYM_GLOB_i686-pc-windows-gnu=$(1)-*.dylib.dSYM
476-
CFG_CFLAGS_i586-w64-mingw32 := -march=i586 -m32 -D_WIN32_WINNT=0x0600 $(CFLAGS)
457+
CFG_CFLAGS_i686-pc-windows-gnu := -march=i586 -m32 -D_WIN32_WINNT=0x0600 $(CFLAGS)
477458
CFG_GCCISH_CFLAGS_i686-pc-windows-gnu := -Wall -Werror -g -m32 -D_WIN32_WINNT=0x0600 $(CFLAGS)
478459
CFG_GCCISH_CXXFLAGS_i686-pc-windows-gnu := -fno-rtti $(CXXFLAGS)
479460
CFG_GCCISH_LINK_FLAGS_i686-pc-windows-gnu := -shared -g -m32
480461
CFG_GCCISH_DEF_FLAG_i686-pc-windows-gnu :=
481462
CFG_GCCISH_PRE_LIB_FLAGS_i686-pc-windows-gnu :=
482463
CFG_GCCISH_POST_LIB_FLAGS_i686-pc-windows-gnu :=
483-
CFG_DEF_SUFFIX_i686-pc-windows-gnu := .mingw32.def
464+
CFG_DEF_SUFFIX_i686-pc-windows-gnu := .windows.def
484465
CFG_LLC_FLAGS_i686-pc-windows-gnu :=
485466
CFG_INSTALL_NAME_i686-pc-windows-gnu =
486467
CFG_LIBUV_LINK_FLAGS_i686-pc-windows-gnu := -lws2_32 -lpsapi -liphlpapi
@@ -492,6 +473,7 @@ CFG_LDPATH_i686-pc-windows-gnu :=$(CFG_LDPATH_i686-pc-windows-gnu):$(PATH)
492473
CFG_RUN_i686-pc-windows-gnu=PATH="$(CFG_LDPATH_i686-pc-windows-gnu):$(1)" $(2)
493474
CFG_RUN_TARG_i686-pc-windows-gnu=$(call CFG_RUN_i686-pc-windows-gnu,$(HLIB$(1)_H_$(CFG_BUILD)),$(2))
494475
RUSTC_CROSS_FLAGS_i686-pc-windows-gnu :=
476+
CFG_GNU_TRIPLE_i686-pc-windows-gnu=i686-w64-mingw32
495477

496478
# x86_64-pc-windows-gnu configuration
497479
CROSS_PREFIX_x86_64-pc-windows-gnu=x86_64-pc-windows-gnu-
@@ -510,7 +492,7 @@ CFG_GCCISH_LINK_FLAGS_x86_64-pc-windows-gnu := -shared -g -m64
510492
CFG_GCCISH_DEF_FLAG_x86_64-pc-windows-gnu :=
511493
CFG_GCCISH_PRE_LIB_FLAGS_x86_64-pc-windows-gnu :=
512494
CFG_GCCISH_POST_LIB_FLAGS_x86_64-pc-windows-gnu :=
513-
CFG_DEF_SUFFIX_x86_64-pc-windows-gnu := .mingw32.def
495+
CFG_DEF_SUFFIX_x86_64-pc-windows-gnu := .windows.def
514496
CFG_LLC_FLAGS_x86_64-pc-windows-gnu :=
515497
CFG_INSTALL_NAME_x86_64-pc-windows-gnu =
516498
CFG_LIBUV_LINK_FLAGS_x86_64-pc-windows-gnu := -lws2_32 -lpsapi -liphlpapi
@@ -522,6 +504,7 @@ CFG_LDPATH_x86_64-pc-windows-gnu :=$(CFG_LDPATH_x86_64-pc-windows-gnu):$(PATH)
522504
CFG_RUN_x86_64-pc-windows-gnu=PATH="$(CFG_LDPATH_x86_64-pc-windows-gnu):$(1)" $(2)
523505
CFG_RUN_TARG_x86_64-pc-windows-gnu=$(call CFG_RUN_x86_64-pc-windows-gnu,$(HLIB$(1)_H_$(CFG_BUILD)),$(2))
524506
RUSTC_CROSS_FLAGS_x86_64-pc-windows-gnu :=
507+
CFG_GNU_TRIPLE_x86_64-pc-windows-gnu=x86_64-w64-mingw32
525508

526509
# x86_64-unknown-freebsd configuration
527510
CC_x86_64-unknown-freebsd=$(CC)
@@ -549,6 +532,7 @@ CFG_PATH_MUNGE_x86_64-unknown-freebsd :=
549532
CFG_LDPATH_x86_64-unknown-freebsd :=
550533
CFG_RUN_x86_64-unknown-freebsd=$(2)
551534
CFG_RUN_TARG_x86_64-unknown-freebsd=$(call CFG_RUN_x86_64-unknown-freebsd,,$(2))
535+
CFG_GNU_TRIPLE_x86_64-unknown-freebsd=x86_64-unknown-freebsd
552536

553537
# x86_64-pc-dragonfly-elf configuration
554538
CC_x86_64-unknown-dragonfly=$(CC)
@@ -576,6 +560,7 @@ CFG_PATH_MUNGE_x86_64-unknown-dragonfly :=
576560
CFG_LDPATH_x86_64-unknown-dragonfly :=
577561
CFG_RUN_x86_64-unknown-dragonfly=$(2)
578562
CFG_RUN_TARG_x86_64-unknown-dragonfly=$(call CFG_RUN_x86_64-unknown-dragonfly,,$(2))
563+
CFG_GNU_TRIPLE_x86_64-pc-dragonfly-elf=x86_64-pc-dragonfly-elf
579564

580565

581566
# The -Qunused-arguments sidesteps spurious warnings from clang

mk/rt.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -302,7 +302,7 @@ $$(JEMALLOC_LOCAL_$(1)): $$(JEMALLOC_DEPS) $$(MKFILE_DEPS)
302302
@$$(call E, make: jemalloc)
303303
cd "$$(JEMALLOC_BUILD_DIR_$(1))"; "$(S)src/jemalloc/configure" \
304304
$$(JEMALLOC_ARGS_$(1)) --with-jemalloc-prefix=je_ \
305-
--build=$(CFG_BUILD) --host=$(1) \
305+
--build=$$(CFG_GNU_TRIPLE_$(CFG_BUILD)) --host=$$(CFG_GNU_TRIPLE_$(1)) \
306306
CC="$$(CC_$(1))" \
307307
AR="$$(AR_$(1))" \
308308
RANLIB="$$(AR_$(1)) s" \

src/etc/get-snapshot.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ def unpack_snapshot(triple, dl_path):
5353
dl_path = sys.argv[2]
5454
else:
5555
# There are no 64-bit Windows snapshots yet, so we'll use 32-bit ones instead, for now
56-
snap_triple = triple if triple != "x86_64-w64-mingw32" else "i686-w64-mingw32"
56+
snap_triple = triple if triple != "x86_64-pc-windows-gnu" else "i686-pc-windows-gnu"
5757
snap = determine_curr_snapshot(snap_triple)
5858
dl = os.path.join(download_dir_base, snap)
5959
url = download_url_base + "/" + snap

src/etc/snapshot.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,9 +73,8 @@ def full_snapshot_name(date, rev, platform, hsh):
7373

7474

7575
def get_kernel(triple):
76-
os_name = triple.split('-')[-1]
77-
#scrub(os.getenv("CFG_ENABLE_MINGW_CROSS")):
78-
if os_name == "nt" or os_name == "mingw32":
76+
os_name = triple.split('-')[2]
77+
if os_name == "windows":
7978
return "winnt"
8079
if os_name == "darwin":
8180
return "macos"

src/librustc/back/link.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -950,7 +950,8 @@ pub fn filename_for_input(sess: &Session,
950950
out_filename.with_filename(format!("lib{}.a", libname))
951951
}
952952
config::CrateTypeExecutable => {
953-
out_filename.with_extension(sess.target.target.options.exe_suffix.as_slice())
953+
let suffix = sess.target.target.options.exe_suffix.as_slice();
954+
out_filename.with_filename(format!("{}{}", libname, suffix))
954955
}
955956
}
956957
}
@@ -1408,7 +1409,7 @@ fn link_args(cmd: &mut Command,
14081409
// subset we wanted.
14091410
if !t.options.is_like_windows {
14101411
cmd.arg("-nodefaultlibs");
1411-
1412+
} else {
14121413
// Always enable DEP (NX bit) when it is available
14131414
cmd.arg("-Wl,--nxcompat");
14141415

src/librustc/driver/config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -404,7 +404,7 @@ pub fn default_lib_output() -> CrateType {
404404
}
405405

406406
pub fn default_configuration(sess: &Session) -> ast::CrateConfig {
407-
use intern = syntax::parse::token::intern_and_get_ident;
407+
use syntax::parse::token::intern_and_get_ident as intern;
408408

409409
let end = sess.target.target.target_endian.as_slice();
410410
let arch = sess.target.target.arch.as_slice();

src/librustc/metadata/loader.rs

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -393,11 +393,9 @@ impl<'a> Context<'a> {
393393
file.ends_with(".rlib") {
394394
(file.slice(rlib_prefix.len(), file.len() - ".rlib".len()),
395395
true)
396-
} else if file.starts_with(dypair.ref0().as_slice()) &&
397-
file.ends_with(dypair.ref1().as_slice()) {
398-
let (_, ref suffix) = dypair;
399-
let dylib_prefix = dylib_prefix.as_slice();
400-
(file.slice(dylib_prefix.len(), file.len() - suffix.len()),
396+
} else if file.starts_with(dylib_prefix.as_slice()) &&
397+
file.ends_with(dypair.ref1().as_slice()) {
398+
(file.slice(dylib_prefix.len(), file.len() - dypair.ref1().len()),
401399
false)
402400
} else {
403401
return FileDoesntMatch

src/librustc/middle/dependency_format.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,13 +135,13 @@ fn calculate_type(sess: &session::Session,
135135
sess.cstore.iter_crate_data(|cnum, data| {
136136
let src = sess.cstore.get_used_crate_source(cnum).unwrap();
137137
if src.dylib.is_some() {
138-
add_library(sess, cnum, cstore::RequireDynamic, &mut formats);
139138
debug!("adding dylib: {}", data.name);
139+
add_library(sess, cnum, cstore::RequireDynamic, &mut formats);
140140
let deps = csearch::get_dylib_dependency_formats(&sess.cstore, cnum);
141141
for &(depnum, style) in deps.iter() {
142-
add_library(sess, depnum, style, &mut formats);
143142
debug!("adding {}: {}", style,
144143
sess.cstore.get_crate_data(depnum).name.clone());
144+
add_library(sess, depnum, style, &mut formats);
145145
}
146146
}
147147
});
@@ -160,9 +160,9 @@ fn calculate_type(sess: &session::Session,
160160
let src = sess.cstore.get_used_crate_source(cnum).unwrap();
161161
if src.dylib.is_none() && !formats.contains_key(&cnum) {
162162
assert!(src.rlib.is_some());
163+
debug!("adding staticlib: {}", data.name);
163164
add_library(sess, cnum, cstore::RequireStatic, &mut formats);
164165
*ret.get_mut(cnum as uint - 1) = Some(cstore::RequireStatic);
165-
debug!("adding staticlib: {}", data.name);
166166
}
167167
});
168168

src/librustc_back/target/i686_pc_windows_gnu.rs

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,23 @@
88
// option. This file may not be copied, modified, or distributed
99
// except according to those terms.
1010

11-
use target::Target;
11+
use target::{Target, TargetOptions};
1212

1313
pub fn target() -> Target {
14+
let base = super::windows_base::opts();
1415
Target {
1516
data_layout: "e-p:32:32-f64:64:64-i64:64:64-f80:32:32-n8:16:32".to_string(),
1617
llvm_target: "i686-pc-windows-gnu".to_string(),
1718
target_endian: "little".to_string(),
1819
target_word_size: "32".to_string(),
1920
arch: "x86".to_string(),
2021
target_os: "windows".to_string(),
21-
options: super::windows_base::opts()
22+
options: TargetOptions {
23+
pre_link_args: base.pre_link_args.clone().append(&[
24+
"-shared-libgcc".to_string(),
25+
"-Wl,--large-address-aware".to_string()
26+
]),
27+
.. base
28+
}
2229
}
2330
}

0 commit comments

Comments
 (0)