@@ -257,7 +257,7 @@ CFG_LIB_NAME_i686-apple-darwin=lib$(1).dylib
257257CFG_STATIC_LIB_NAME_i686-apple-darwin =lib$(1 ) .a
258258CFG_LIB_GLOB_i686-apple-darwin =lib$(1 ) -*.dylib
259259CFG_LIB_DSYM_GLOB_i686-apple-darwin =lib$(1 ) -*.dylib.dSYM
260- CFG_GCCISH_CFLAGS_i686-apple-darwin := -Wall -Werror - g -fPIC -m32 -arch i386
260+ CFG_GCCISH_CFLAGS_i686-apple-darwin := -Wall -g -fPIC -m32 -arch i386
261261CFG_GCCISH_CXXFLAGS_i686-apple-darwin := -fno-rtti
262262CFG_GCCISH_LINK_FLAGS_i686-apple-darwin := -dynamiclib -pthread -framework CoreServices -m32
263263CFG_GCCISH_DEF_FLAG_i686-apple-darwin := -Wl,-exported_symbols_list,
@@ -302,10 +302,11 @@ CFG_RUN_TARG_arm-linux-androideabi=
302302RUSTC_FLAGS_arm-linux-androideabi :=--android-cross-path=$(CFG_ANDROID_CROSS_PATH )
303303
304304# arm-unknown-linux-gnueabihf configuration
305- CC_arm-unknown-linux-gnueabihf =arm-linux-gnueabihf-gcc
306- CXX_arm-unknown-linux-gnueabihf =arm-linux-gnueabihf-g++
307- CPP_arm-unknown-linux-gnueabihf =arm-linux-gnueabihf-gcc -E
308- AR_arm-unknown-linux-gnueabihf =arm-linux-gnueabihf-ar
305+ CROSS_PREFIX_arm-unknown-linux-gnueabihf =arm-linux-gnueabihf-
306+ CC_arm-unknown-linux-gnueabihf =gcc
307+ CXX_arm-unknown-linux-gnueabihf =g++
308+ CPP_arm-unknown-linux-gnueabihf =gcc -E
309+ AR_arm-unknown-linux-gnueabihf =ar
309310CFG_LIB_NAME_arm-unknown-linux-gnueabihf =lib$(1 ) .so
310311CFG_STATIC_LIB_NAME_arm-unknown-linux-gnueabihf =lib$(1 ) .a
311312CFG_LIB_GLOB_arm-unknown-linux-gnueabihf =lib$(1 ) -*.so
@@ -324,15 +325,17 @@ CFG_WINDOWSY_arm-unknown-linux-gnueabihf :=
324325CFG_UNIXY_arm-unknown-linux-gnueabihf := 1
325326CFG_PATH_MUNGE_arm-unknown-linux-gnueabihf := true
326327CFG_LDPATH_arm-unknown-linux-gnueabihf :=
327- CFG_RUN_arm-unknown-linux-gnueabihf =
328- CFG_RUN_TARG_arm-unknown-linux-gnueabihf =
329- RUSTC_FLAGS_arm-unknown-linux-gnueabihf := --linker=$(CC_arm-unknown-linux-gnueabihf )
328+ CFG_RUN_arm-unknown-linux-gnueabihf =$(2 )
329+ CFG_RUN_TARG_arm-unknown-linux-gnueabihf =$(call CFG_RUN_arm-unknown-linux-gnueabihf,,$(2 ) )
330+ RUSTC_FLAGS_arm-unknown-linux-gnueabihf :=
331+ RUSTC_CROSS_FLAGS_arm-unknown-linux-gnueabihf := --linker=$(CROSS_PREFIX_arm-unknown-linux-gnueabihf )$(CC_arm-unknown-linux-gnueabihf )
330332
331333# arm-unknown-linux-gnueabi configuration
332- CC_arm-unknown-linux-gnueabi =arm-linux-gnueabi-gcc
333- CXX_arm-unknown-linux-gnueabi =arm-linux-gnueabi-g++
334- CPP_arm-unknown-linux-gnueabi =arm-linux-gnueabi-gcc -E
335- AR_arm-unknown-linux-gnueabi =arm-linux-gnueabi-ar
334+ CROSS_PREFIX_arm-unknown-linux-gnueabi =arm-linux-gnueabi-
335+ CC_arm-unknown-linux-gnueabi =gcc
336+ CXX_arm-unknown-linux-gnueabi =g++
337+ CPP_arm-unknown-linux-gnueabi =gcc -E
338+ AR_arm-unknown-linux-gnueabi =ar
336339CFG_LIB_NAME_arm-unknown-linux-gnueabi =lib$(1 ) .so
337340CFG_STATIC_LIB_NAME_arm-unknown-linux-gnueabi =lib$(1 ) .a
338341CFG_LIB_GLOB_arm-unknown-linux-gnueabi =lib$(1 ) -*.so
@@ -351,9 +354,10 @@ CFG_WINDOWSY_arm-unknown-linux-gnueabi :=
351354CFG_UNIXY_arm-unknown-linux-gnueabi := 1
352355CFG_PATH_MUNGE_arm-unknown-linux-gnueabi := true
353356CFG_LDPATH_arm-unknown-linux-gnueabi :=
354- CFG_RUN_arm-unknown-linux-gnueabi =
355- CFG_RUN_TARG_arm-unknown-linux-gnueabi =
356- RUSTC_FLAGS_arm-unknown-linux-gnueabi := --linker=$(CC_arm-unknown-linux-gnueabi )
357+ CFG_RUN_arm-unknown-linux-gnueabi =$(2 )
358+ CFG_RUN_TARG_arm-unknown-linux-gnueabi =$(call CFG_RUN_arm-unknown-linux-gnueabi,,$(2 ) )
359+ RUSTC_FLAGS_arm-unknown-linux-gnueabi :=
360+ RUSTC_CROSS_FLAGS_arm-unknown-linux-gnueabi := --linker=$(CROSS_PREFIX_arm-unknown-linux-gnueabi )$(CC_arm-unknown-linux-gnueabi )
357361
358362# mips-unknown-linux-gnu configuration
359363CC_mips-unknown-linux-gnu =mips-linux-gnu-gcc
@@ -399,7 +403,7 @@ CFG_GCCISH_PRE_LIB_FLAGS_i686-pc-mingw32 :=
399403CFG_GCCISH_POST_LIB_FLAGS_i686-pc-mingw32 :=
400404CFG_DEF_SUFFIX_i686-pc-mingw32 := .mingw32.def
401405CFG_INSTALL_NAME_i686-pc-mingw32 =
402- CFG_LIBUV_LINK_FLAGS_i686-pc-mingw32 := -lWs2_32 -lpsapi -liphlpapi
406+ CFG_LIBUV_LINK_FLAGS_i686-pc-mingw32 := -lws2_32 -lpsapi -liphlpapi
403407CFG_LLVM_BUILD_ENV_i686-pc-mingw32 := CPATH=$(CFG_SRC_DIR ) src/etc/mingw-fix-include
404408CFG_EXE_SUFFIX_i686-pc-mingw32 := .exe
405409CFG_WINDOWSY_i686-pc-mingw32 := 1
@@ -437,31 +441,61 @@ CFG_LDPATH_i586-mingw32msvc :=
437441CFG_RUN_i586-mingw32msvc =
438442CFG_RUN_TARG_i586-mingw32msvc =
439443
444+ # i686-w64-mingw32 configuration
445+ CROSS_PREFIX_i686-w64-mingw32 =i686-w64-mingw32-
446+ CC_i686-w64-mingw32 =gcc
447+ CXX_i686-w64-mingw32 =g++
448+ CPP_i686-w64-mingw32 =gcc -E
449+ AR_i686-w64-mingw32 =ar
450+ CFG_LIB_NAME_i686-w64-mingw32 =$(1 ) .dll
451+ CFG_STATIC_LIB_NAME_i686-w64-mingw32 =$(1 ) .lib
452+ CFG_LIB_GLOB_i686-w64-mingw32 =$(1 ) -*.dll
453+ CFG_LIB_DSYM_GLOB_i686-w64-mingw32 =$(1 ) -*.dylib.dSYM
454+ CFG_GCCISH_CFLAGS_i686-w64-mingw32 := -Wall -g -m32 -D_WIN32_WINNT=0x0600
455+ CFG_GCCISH_CXXFLAGS_i686-w64-mingw32 := -fno-rtti
456+ CFG_GCCISH_LINK_FLAGS_i686-w64-mingw32 := -shared -g -m32
457+ CFG_GCCISH_DEF_FLAG_i686-w64-mingw32 :=
458+ CFG_GCCISH_PRE_LIB_FLAGS_i686-w64-mingw32 :=
459+ CFG_GCCISH_POST_LIB_FLAGS_i686-w64-mingw32 :=
460+ CFG_DEF_SUFFIX_i686-w64-mingw32 := .mingw32.def
461+ CFG_INSTALL_NAME_i686-w64-mingw32 =
462+ CFG_LIBUV_LINK_FLAGS_i686-w64-mingw32 := -lws2_32 -lpsapi -liphlpapi
463+ CFG_EXE_SUFFIX_i686-w64-mingw32 := .exe
464+ CFG_WINDOWSY_i686-w64-mingw32 := 1
465+ CFG_UNIXY_i686-w64-mingw32 :=
466+ CFG_PATH_MUNGE_i686-w64-mingw32 :=
467+ CFG_LDPATH_i686-w64-mingw32 :=$(CFG_LDPATH_i686-w64-mingw32 ) :$(PATH )
468+ CFG_RUN_i686-w64-mingw32=PATH ="$(CFG_LDPATH_i686-w64-mingw32 ) :$(1 ) " $(2 )
469+ CFG_RUN_TARG_i686-w64-mingw32 =$(call CFG_RUN_i686-w64-mingw32,$(HLIB$(1 ) _H_$(CFG_BUILD ) ) ,$(2 ) )
470+ RUSTC_CROSS_FLAGS_i686-w64-mingw32 := --linker=$(CROSS_PREFIX_i686-w64-mingw32 )$(CC_i686-w64-mingw32 )
471+
440472# x86_64-w64-mingw32 configuration
441- CC_x86_64-w64-mingw32 =$(CC )
442- CXX_x86_64-w64-mingw32 =$(CXX )
443- CPP_x86_64-w64-mingw32 =$(CPP )
444- AR_x86_64-w64-mingw32 =$(AR )
473+ CROSS_PREFIX_x86_64-w64-mingw32 =x86_64-w64-mingw32-
474+ CC_x86_64-w64-mingw32 =gcc
475+ CXX_x86_64-w64-mingw32 =g++
476+ CPP_x86_64-w64-mingw32 =gcc -E
477+ AR_x86_64-w64-mingw32 =ar
445478CFG_LIB_NAME_x86_64-w64-mingw32 =$(1 ) .dll
446479CFG_STATIC_LIB_NAME_x86_64-w64-mingw32 =$(1 ) .lib
447480CFG_LIB_GLOB_x86_64-w64-mingw32 =$(1 ) -*.dll
448481CFG_LIB_DSYM_GLOB_x86_64-w64-mingw32 =$(1 ) -*.dylib.dSYM
449- CFG_GCCISH_CFLAGS_x86_64-w64-mingw32 := -Wall -Werror - g -m64 -D_WIN32_WINNT=0x0600
482+ CFG_GCCISH_CFLAGS_x86_64-w64-mingw32 := -Wall -g -m64 -D_WIN32_WINNT=0x0600
450483CFG_GCCISH_CXXFLAGS_x86_64-w64-mingw32 := -fno-rtti
451- CFG_GCCISH_LINK_FLAGS_x86_64-w64-mingw32 := -shared -fPIC - g -m64
484+ CFG_GCCISH_LINK_FLAGS_x86_64-w64-mingw32 := -shared -g -m64
452485CFG_GCCISH_DEF_FLAG_x86_64-w64-mingw32 :=
453486CFG_GCCISH_PRE_LIB_FLAGS_x86_64-w64-mingw32 :=
454487CFG_GCCISH_POST_LIB_FLAGS_x86_64-w64-mingw32 :=
455488CFG_DEF_SUFFIX_x86_64-w64-mingw32 := .mingw32.def
456489CFG_INSTALL_NAME_x86_64-w64-mingw32 =
457- CFG_LIBUV_LINK_FLAGS_x86_64-w64-mingw32 := -lWs2_32 -lpsapi -liphlpapi
490+ CFG_LIBUV_LINK_FLAGS_x86_64-w64-mingw32 := -lws2_32 -lpsapi -liphlpapi
458491CFG_EXE_SUFFIX_x86_64-w64-mingw32 := .exe
459492CFG_WINDOWSY_x86_64-w64-mingw32 := 1
460493CFG_UNIXY_x86_64-w64-mingw32 :=
461494CFG_PATH_MUNGE_x86_64-w64-mingw32 :=
462495CFG_LDPATH_x86_64-w64-mingw32 :=$(CFG_LDPATH_x86_64-w64-mingw32 ) :$(PATH )
463496CFG_RUN_x86_64-w64-mingw32=PATH ="$(CFG_LDPATH_x86_64-w64-mingw32 ) :$(1 ) " $(2 )
464497CFG_RUN_TARG_x86_64-w64-mingw32 =$(call CFG_RUN_x86_64-w64-mingw32,$(HLIB$(1 ) _H_$(CFG_BUILD ) ) ,$(2 ) )
498+ RUSTC_CROSS_FLAGS_x86_64-w64-mingw32 := --linker=$(CROSS_PREFIX_x86_64-w64-mingw32 )$(CC_x86_64-w64-mingw32 )
465499
466500# x86_64-unknown-freebsd configuration
467501CC_x86_64-unknown-freebsd =$(CC )
@@ -499,6 +533,16 @@ ifdef CFG_CCACHE_BASEDIR
499533endif
500534
501535define CFG_MAKE_TOOLCHAIN
536+ # Prepend the tools with their prefix if cross compiling
537+ ifneq ($(CFG_BUILD ) ,$(1 ) )
538+ CC_$(1 ) =$(CROSS_PREFIX_$(1 ) )$(CC_$(1 ) )
539+ CXX_$(1 ) =$(CROSS_PREFIX_$(1 ) )$(CXX_$(1 ) )
540+ CPP_$(1 ) =$(CROSS_PREFIX_$(1 ) )$(CPP_$(1 ) )
541+ AR_$(1 ) =$(CROSS_PREFIX_$(1 ) )$(AR_$(1 ) )
542+
543+ RUSTC_FLAGS_$(1 ) =$(RUSTC_CROSS_FLAGS_$(1 ) )
544+ endif
545+
502546 CFG_COMPILE_C_$(1 ) = $$(CC_$(1 ) ) \
503547 $$(CFG_GCCISH_CFLAGS ) \
504548 $$(CFG_GCCISH_CFLAGS_$(1 ) ) \
0 commit comments