Closed Bug 1306395 Opened 8 years ago Closed 6 years ago

Target C compiler target CPU (x86_64) does not match: recipe for target 'configure' failed

Categories

(Firefox Build System :: General, defect, P3)

x86_64
Windows 10
defect

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: justaseem51, Unassigned)

Details

(Keywords: 64bit, qablocker, qawanted)

User Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/53.0.2785.116 Safari/537.36

Steps to reproduce:

User Agent: Mozilla-central source(for firefox dev)
Build ID: (Not sure) 66a77b9bfe5dcacd50eccf85de7c0e7e15ce0ffd.gzip.hg

Steps to reproduce:
----------------------
1. Downloaed MS VS 2013 (x64 Bit)
1. Download mozilla source from repository (https://hg.mozilla.org/ ) 
2. mkdir mozilla-central
3. hg init mozilla-central
4. mkdir mozilla-central
5. hg init mozilla-central
6. hg pull and hg update
7. Running "./mach build" showed error
    mozmake.exe -f client.mk configure   <--- executed this command

Captured Results:
-------------------

$ mozmake.exe -f client.mk configure
cd c:/mozilla-source/mozilla-central/obj-i686-pc-mingw32
c:/mozilla-source/mozilla-central/configure
Reexecuting in the virtualenv
checking for a shell... C:/mozilla-build/msys/bin/sh.exe
checking for host system type... i686-pc-mingw32
checking for target system type... i686-pc-mingw32
checking whether cross compiling... no
checking for pkg_config... not found
checking for tar... C:/mozilla-build/msys/bin/tar.EXE
checking for unzip... c:/mozilla-build/info-zip/unzip.EXE
checking for zip... c:/mozilla-build/info-zip/zip.EXE
checking for the Mozilla API key... no
checking for the Google API key... no
checking for the Bing API key... no
checking for the Adjust SDK key... no
checking for yasm... c:/mozilla-build/yasm/yasm.EXE
checking yasm version... 1.3.0
checking for the target C compiler... 'c:/PROGRA~2/MICROS~1.0/VC/BIN/amd64/cl.EXE'
checking whether the target C compiler can be used... no
DEBUG: <truncated - see config.log for full output>
DEBUG: | #elif __linux__
DEBUG: | %KERNEL "Linux"
DEBUG: | #elif _WIN32 || __CYGWIN__
DEBUG: | %KERNEL "WINNT"
DEBUG: | #elif __NetBSD__
DEBUG: | %KERNEL "NetBSD"
DEBUG: | #elif __APPLE__
DEBUG: | %KERNEL "Darwin"
DEBUG: | #endif
DEBUG: | #if _MSC_VER || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
DEBUG: | %ENDIANNESS "little"
DEBUG: | #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
DEBUG: | %ENDIANNESS "big"
DEBUG: | #endif
DEBUG: Executing: `cl.EXE -E 'c:\mozilla-source\mozilla-central\obj-i686-pc-mingw32\conftest.40datk.c'`
DEBUG: COMPILER = msvc
DEBUG: VERSION = 190024215
DEBUG: CPU = x86_64
DEBUG: KERNEL = WINNT
DEBUG: ENDIANNESS = little
ERROR: Target C compiler target CPU (x86_64) does not match --target CPU (i686)
*** Fix above errors and then restart with\
               "c:/mozilla-build/mozmake/mozmake -f client.mk build"
client.mk:373: recipe for target 'configure' failed
mozmake: *** [configure] Error 1
mozmake[2]: Leaving directory 'c:/mozilla-source/mozilla-central'
c:/mozilla-source/mozilla-central/client.mk:390: recipe for target 'c:/mozilla-source/mozilla-central/obj-i686-pc-mingw32/Makefile' failed
mozmake[1]: *** [c:/mozilla-source/mozilla-central/obj-i686-pc-mingw32/Makefile] Error 2
mozmake[1]: Leaving directory 'c:/mozilla-source/mozilla-central'
client.mk:168: recipe for target 'build' failed
mozmake: *** [build] Error 2


Actual results:

Thrown Error: "Target C compiler target CPU (x86_64) does not match --target CPU (i686)" while configuring


Expected results:

Build Compiled successfully
Not a security bug.
Group: firefox-core-security
Component: Untriaged → Build Config
Severity: normal → blocker
OS: Unspecified → Windows 10
Priority: -- → P1
Hardware: Unspecified → x86_64
As the error message says, the compiler you're using cannot build for the specified or automatic target. You need to change one or the other.

If you want a 64-bits Firefox, you need to add:
  ac_add_options --target=x86-64-pc-mingw32
  ac_add_options --host=x86-64-pc-mingw32

to your mozconfig, or use a 64-bits MINGW shell.

If you want a 32-bits Firefox, you need to replace the Visual Studio/VC/bin/amd64 path in $PATH with Visual Studio/VC/bin (or remove it altogether, configure should be able to find it)

I'll leave this bug open, because there might be something we can change to configure to make things smoother (and in your case it would mean building a 32-bits Firefox by either adjusting the compiler path to pick the 32-bits compiler, or add flags to build for 32-bits)
Adding the above two lines to the mozconfig didn't change any of the errors, so instead of using (x64) MinGW Shell, I used a different MinGW Shell to build the source this time. 

However, build procedure interrupted again by an error:-
------------------------------------------------------

$ ./mach build
 0:03.19 c:\mozilla-build\mozmake\mozmake.EXE -f client.mk -s configure
 0:08.47 cd c:/mozilla-source/mozilla-central/obj-i686-pc-mingw32
 0:08.51 c:/mozilla-source/mozilla-central/configure
 0:09.09 Reexecuting in the virtualenv
 0:10.65 checking for a shell... C:/mozilla-build/msys/bin/sh.exe
 0:11.42 checking for host system type... i686-pc-mingw32
 0:11.42 checking for target system type... i686-pc-mingw32
 0:11.43 checking whether cross compiling... no
 0:11.47 checking for pkg_config... not found
 0:11.52 checking for tar... C:/mozilla-build/msys/bin/tar.EXE
 0:11.52 checking for unzip... c:/mozilla-build/info-zip/unzip.EXE
 0:11.54 checking for zip... c:/mozilla-build/info-zip/zip.EXE
 0:11.54 checking for the Mozilla API key... no
 0:11.54 checking for the Google API key... no
 0:11.54 checking for the Bing API key... no
 0:11.54 checking for the Adjust SDK key... no
 0:11.54 checking for yasm... c:/mozilla-build/yasm/yasm.EXE
 0:11.55 checking yasm version... 1.3.0
 0:11.57 checking for the target C compiler... 'c:/PROGRA~2/MICROS~1.0/VC/BIN/AMD64_~2/cl.EXE'
 0:11.75 checking whether the target C compiler can be used... yes
 0:11.75 checking the target C compiler version... 19.00.24215
 0:11.89 checking the target C compiler works... yes
 0:11.90 checking for the target C++ compiler... 'c:/PROGRA~2/MICROS~1.0/VC/BIN/AMD64_~2/cl.EXE'
 0:12.02 checking whether the target C++ compiler can be used... yes
 0:12.02 checking the target C++ compiler version... 19.00.24215
 0:12.24 checking the target C++ compiler works... yes
 0:12.25 checking for the host C compiler... 'c:/PROGRA~2/MICROS~1.0/VC/BIN/AMD64_~2/cl.EXE'
 0:12.34 checking whether the host C compiler can be used... yes
 0:12.34 checking the host C compiler version... 19.00.24215
 0:12.44 checking the host C compiler works... yes
 0:12.44 checking for the host C++ compiler... 'c:/PROGRA~2/MICROS~1.0/VC/BIN/AMD64_~2/cl.EXE'
 0:12.52 checking whether the host C++ compiler can be used... yes
 0:12.52 checking the host C++ compiler version... 19.00.24215
 0:12.63 checking the host C++ compiler works... yes
 0:12.76 checking for 64-bit OS... no
 0:12.84 checking for Windows SDK... 0x0603 in 'C:\Program Files (x86)\Windows Kits\8.1\'
 0:12.84 checking for Universal CRT SDK... 10.0.10240.0 in 'C:\Program Files (x86)\Windows Kits\10'
 0:12.86 checking for the Debug Interface Access SDK... c:/PROGRA~2/MICROS~1.0/DIA SDK
 0:12.89 checking for mt... 'c:/PROGRA~2/WI3CF2~1/8.1/bin/x64/mt.exe'
 0:12.94 checking whether MT is really Microsoft Manifest Tool... yes
 0:12.94 checking for link... 'C:/PROGRA~2/MICROS~1.0/VC/bin/AMD64_~2/link.exe'
 0:13.11 checking for stdint.h... yes
 0:13.26 checking for inttypes.h... yes
 0:13.41 checking for malloc.h... yes
 0:13.52 checking for alloca.h... no
 0:13.62 checking for perf_event_open system call... no
 0:13.66 checking for awk... C:/mozilla-build/msys/bin/gawk.EXE
 0:13.71 checking for perl... C:/mozilla-build/msys/bin/perl.EXE
 0:13.74 checking for minimum required perl version >= 5.006... 5.008008
 0:13.78 checking for full perl installation... yes
 0:13.81 checking for gmake... c:/mozilla-build/mozmake/mozmake.EXE
 0:13.84 checking for doxygen... not found
 0:13.86 checking for xargs... C:/mozilla-build/msys/bin/xargs.EXE
 0:13.86 checking for makensisu... c:/mozilla-build/nsis-3.0b3/makensis-3.0b3.exe
 0:13.91 checking for NSIS version... 3.0b3
 0:13.91 checking for 32-bit NSIS... yes
 0:13.91 checking for autoconf... C:/mozilla-build/msys/local/bin/autoconf-2.13
 0:17.75 loading cache ./config.cache
 0:18.70 checking host system type... i686-pc-mingw32
 0:19.25 checking target system type... i686-pc-mingw32
 0:19.79 checking build system type... i686-pc-mingw32
 0:20.11 checking for gcc... (cached) cl.EXE
 0:21.12 checking whether the C compiler (cl.EXE  ) works... yes
 0:21.12 checking whether the C compiler (cl.EXE  ) is a cross-compiler... no
 0:21.12 checking whether we are using GNU C... (cached) no
 0:21.13 checking whether cl.EXE accepts -g... (cached) no
 0:23.17 checking for c++... (cached) cl.EXE
 0:23.60 checking whether the C++ compiler (cl.EXE  ) works... yes
 0:23.60 checking whether the C++ compiler (cl.EXE  ) is a cross-compiler... no
 0:23.60 checking whether we are using GNU C++... (cached) no
 0:23.61 checking whether cl.EXE accepts -g... (cached) no
 0:23.63 checking for ranlib... (cached) :
 0:23.64 checking for ml... (cached) /c/Program Files (x86)/Microsoft Visual Studio 14.0/VC/BIN/amd64_x86/ml
 0:23.74 checking for ar... no
 0:23.76 checking for ld... (cached) C:/PROGRA~2/MICROS~1.0/VC/bin/AMD64_~2/link.exe
 0:23.77 checking for strip... no
 0:23.80 checking for windres... no
 0:23.83 checking for otool... no
 0:24.21 checking for midl... (cached) midl
 0:25.20 checking for dia2.h... (cached) yes
 0:25.56 checking for overridable _RAISE... (cached) yes
 0:26.26 checking for X... (cached) no
 0:28.68 grep: invalid option -- /
 0:28.69 Usage: grep [OPTION]... PATTERN [FILE]...
 0:28.69 Try `grep --help' for more information.
 0:28.75 grep: invalid option -- /
 0:28.75 Usage: grep [OPTION]... PATTERN [FILE]...
 0:28.75 Try `grep --help' for more information.
 0:29.69 checking for malloc.h... (cached) yes
 0:29.82 checking for strndup... (cached) no
 0:29.84 checking for posix_memalign... (cached) no
 0:29.87 checking for memalign... (cached) no
 0:29.89 checking for malloc_usable_size... (cached) no
 0:30.15 checking whether malloc_usable_size definition can use const argument... yes
 0:30.49 checking for valloc in malloc.h... no
 0:30.71 checking for valloc in unistd.h... no
 0:31.14 checking NSPR selection... source-tree
 0:31.34 checking if app-specific confvars.sh exists... c:/mozilla-source/mozilla-central/browser/confvars.sh
 0:34.05 Found D3D compiler in Windows SDK.
 0:34.08 Found MOZ_D3DCOMPILER_VISTA_DLL_PATH: C:\Program Files (x86)\Windows Kits\8.1\/Redist/D3D/x86/d3dcompiler_47.dll
 0:34.55 ERROR: Invalid key name.
 0:34.55 Type "REG QUERY /?" for usage.
 0:34.59 DirectX SDK not found.
 0:34.60 Couldn't find an acceptable DirectX SDK for ANGLE, needed for d3dcompiler_43.
 0:34.60 Found d3dcompiler DLL for Vista+: d3dcompiler_47.dll
 0:35.48 checking for wget... (cached) wget
 0:36.80 checking for valid C compiler optimization flags... yes
 0:38.29 checking what kind of list files are supported by the linker... list
 0:39.27 checking for d3d9.h... (cached) yes
 0:39.35 checking for d3d10.h... (cached) yes
 0:40.93 c:/mozilla-source/mozilla-central/old-configure: line 18883: cannot create temp file for here document: Permission denied
 0:41.39 c:/mozilla-source/mozilla-central/old-configure: line 19075: cannot create temp file for here document: Permission denied
 0:41.48 checking for posix_fadvise... (cached) no
 0:41.51 checking for posix_fallocate... (cached) no
 0:42.71 creating ./config.data
 0:43.08 c:/mozilla-source/mozilla-central/old-configure: line 20236: cannot create temp file for here document: Permission denied
 0:46.10
 0:47.14 Traceback (most recent call last):
 0:47.14   File "c:/mozilla-source/mozilla-central/build/subconfigure.py", line 441, in <module>
 0:47.14     sys.exit(main(sys.argv[1:]))
 0:47.14   File "c:/mozilla-source/mozilla-central/build/subconfigure.py", line 425, in main
 0:47.14     return subconfigure(args)
 0:47.14   File "c:/mozilla-source/mozilla-central/build/subconfigure.py", line 412, in subconfigure
 0:47.14     pool.imap_unordered(run, subconfigures):
 0:47.14   File "c:\mozilla-build\python\Lib\multiprocessing\pool.py", line 668, in next
 0:47.15     raise value
 0:47.15 IOError: [Errno 2] No such file or directory: 'memory/jemalloc/src/Makefile'
 0:47.19 DEBUG: <truncated - see config.log for full output>
 0:47.19 DEBUG: cl : Command line warning D9002 : ignoring unknown option '-LARGEADDRESSAWARE'
 0:47.19 DEBUG: cl : Command line warning D9002 : ignoring unknown option '-NXCOMPAT'
 0:47.19 DEBUG: cl : Command line warning D9002 : ignoring unknown option '-SAFESEH'
 0:47.19 DEBUG: Microsoft (R) Incremental Linker Version 14.00.24215.1
 0:47.19 DEBUG: Copyright (C) Microsoft Corporation.  All rights reserved.
 0:47.19 DEBUG:
 0:47.19 DEBUG: /out:conftest.exe
 0:47.19 DEBUG: /out:conftest.exe
 0:47.20 DEBUG: conftest.obj
 0:47.20 DEBUG: kernel32.lib
 0:47.20 DEBUG: user32.lib
 0:47.20 DEBUG: gdi32.lib
 0:47.20 DEBUG: winmm.lib
 0:47.20 DEBUG: wsock32.lib
 0:47.20 DEBUG: advapi32.lib
 0:47.22 DEBUG: secur32.lib
 0:47.22 DEBUG: configure:18211: checking for d3d9.h
 0:47.22 DEBUG: configure:18248: checking for d3d10.h
 0:47.22 DEBUG: configure:19131: checking for posix_fadvise
 0:47.22 DEBUG: configure:19131: checking for posix_fallocate
 0:47.22 ERROR: old-configure failed
 0:47.27 *** Fix above errors and then restart with\
 0:47.27                "c:/mozilla-build/mozmake/mozmake.EXE -f client.mk build"
 0:47.29 client.mk:373: recipe for target 'configure' failed
 0:47.29 mozmake.EXE: *** [configure] Error 1
---------------------------------------------------------------------------

I Couldn't find any similar issue online for Windows Platform.
Help me out here, and if you need any other information please let me know.
Unable to build even after doing what is suggested at the site : https://developer.mozilla.org/en-US/docs/Mozilla/Developer_guide/Build_Instructions/Windows_Prerequisites
I keep facing the same issue as given above.

Could really use some help right now !!


Thanks,
Aseem
It looks like you don't have write permissions to the temporary directory wherever configure is trying to create temporary files.  Where is your temporary directory set to?
Severity: blocker → normal
Priority: P1 → P3
i have the same issue
I had the same issue, and added 

ac_add_options --target=x86_64-w64-mingw32
ac_add_options --host=x86_64-w64-mingw32

to my mozconfig, which has solved my problem. Also I advice to run 
./mach bootstrap 
before you run 
./mach build 
because cargo and rustc were missing.
How recommended above added 
ac_add_options --target=x86-64-pc-mingw32
ac_add_options --host=x86-64-pc-mingw32
to mozilla-source/mozilla-central/configure
and used both batch with shells - start-shell-msvc2015 and start-shell-msvc2015-x64

then added other options
ac_add_options --target=x86_64-w64-mingw32
ac_add_options --host=x86_64-w64-mingw32
to mozilla-source/mozilla-central/configure
and used again both batch with shells - start-shell-msvc2015 and start-shell-msvc2015-x64

In all cases got the same error: Target C compiler target CPU (x86_64) does not match --target CPU (i686)

Full config.log content attached below:

INFO: checking for a shell... 
INFO: C:/mozilla-build/msys/bin/sh.exe
INFO: checking for host system type... 
INFO: i686-pc-mingw32
INFO: checking for target system type... 
INFO: i686-pc-mingw32
INFO: checking for a shell... 
INFO: C:/mozilla-build/msys/bin/sh.exe
INFO: checking for host system type... 
INFO: i686-pc-mingw32
INFO: checking for target system type... 
INFO: i686-pc-mingw32
INFO: checking whether cross compiling... 
INFO: no
INFO: checking for the target C compiler... 
DEBUG: _cc: Trying cl
INFO: 'd:/PROGRA~3/MICROS~2.0/VC/BIN/amd64/cl.exe'
INFO: checking whether the target C compiler can be used... 
DEBUG: Creating `d:\users\root\appdata\local\temp\conftest.oh0uq9.c` with content:
DEBUG: | #if defined(_MSC_VER)
DEBUG: | #if defined(__clang__)
DEBUG: | %COMPILER "clang-cl"
DEBUG: | %VERSION _MSC_FULL_VER
DEBUG: | #else
DEBUG: | %COMPILER "msvc"
DEBUG: | %VERSION _MSC_FULL_VER
DEBUG: | #endif
DEBUG: | #elif defined(__clang__)
DEBUG: | %COMPILER "clang"
DEBUG: | #  if !__cplusplus || __has_feature(cxx_alignof)
DEBUG: | %VERSION __clang_major__.__clang_minor__.__clang_patchlevel__
DEBUG: | #  endif
DEBUG: | #elif defined(__GNUC__)
DEBUG: | %COMPILER "gcc"
DEBUG: | %VERSION __GNUC__.__GNUC_MINOR__.__GNUC_PATCHLEVEL__
DEBUG: | #endif
DEBUG: | 
DEBUG: | #if __cplusplus
DEBUG: | %cplusplus __cplusplus
DEBUG: | #elif __STDC_VERSION__
DEBUG: | %STDC_VERSION __STDC_VERSION__
DEBUG: | #elif __STDC__
DEBUG: | %STDC_VERSION 198900L
DEBUG: | #endif
DEBUG: | #if __i386__ || _M_IX86
DEBUG: | %CPU "x86"
DEBUG: | #elif __x86_64__ || _M_X64
DEBUG: | %CPU "x86_64"
DEBUG: | #elif __arm__ || _M_ARM
DEBUG: | %CPU "arm"
DEBUG: | #elif __aarch64__
DEBUG: | %CPU "aarch64"
DEBUG: | #elif __ia64__
DEBUG: | %CPU "ia64"
DEBUG: | #elif __s390x__
DEBUG: | %CPU "s390x"
DEBUG: | #elif __s390__
DEBUG: | %CPU "s390"
DEBUG: | #elif __powerpc64__
DEBUG: | %CPU "ppc64"
DEBUG: | #elif __powerpc__
DEBUG: | %CPU "ppc"
DEBUG: | #elif __alpha__
DEBUG: | %CPU "Alpha"
DEBUG: | #elif __hppa__
DEBUG: | %CPU "hppa"
DEBUG: | #elif __sparc__ && __arch64__
DEBUG: | %CPU "sparc64"
DEBUG: | #elif __sparc__
DEBUG: | %CPU "sparc"
DEBUG: | #elif __mips64
DEBUG: | %CPU "mips64"
DEBUG: | #elif __mips__
DEBUG: | %CPU "mips32"
DEBUG: | #elif __sh__
DEBUG: | %CPU "sh4"
DEBUG: | #endif
DEBUG: | #if __FreeBSD_kernel__
DEBUG: | %KERNEL "kFreeBSD"
DEBUG: | #elif __DragonFly__
DEBUG: | %KERNEL "DragonFly"
DEBUG: | #elif __OpenBSD__
DEBUG: | %KERNEL "OpenBSD"
DEBUG: | #elif __FreeBSD__
DEBUG: | %KERNEL "FreeBSD"
DEBUG: | #elif __linux__
DEBUG: | %KERNEL "Linux"
DEBUG: | #elif _WIN32 || __CYGWIN__
DEBUG: | %KERNEL "WINNT"
DEBUG: | #elif __NetBSD__
DEBUG: | %KERNEL "NetBSD"
DEBUG: | #elif __APPLE__
DEBUG: | %KERNEL "Darwin"
DEBUG: | #endif
DEBUG: | #if _MSC_VER || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
DEBUG: | %ENDIANNESS "little"
DEBUG: | #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
DEBUG: | %ENDIANNESS "big"
DEBUG: | #endif
DEBUG: Executing: `cl.exe -E 'd:\users\root\appdata\local\temp\conftest.oh0uq9.c'`
DEBUG: COMPILER = msvc
DEBUG: VERSION = 190024215
DEBUG: CPU = x86_64
DEBUG: KERNEL = WINNT
DEBUG: ENDIANNESS = little
INFO: no
ERROR: Target C compiler target CPU (x86_64) does not match --target CPU (i686)
(In reply to loopen.coder from comment #8)
> INFO: checking for a shell... 
> INFO: C:/mozilla-build/msys/bin/sh.exe
> INFO: checking for host system type... 
> INFO: i686-pc-mingw32
> INFO: checking for target system type... 
> INFO: i686-pc-mingw32

This contradicts what you say is in your mozconfig. In fact, if that's your full config.log, that implies your mozconfig is not used, otherwise, your log would start with "Adding configure options from ...."
(In reply to Mike Hommey [:glandium] from comment #9)

Thanks for your reply, Mike.
I have tried to run build again and direct console output to file. And it differs from that output which in config.log. Config.log content remains the same like in my previous comment. 

I have used mozilla-source/mozilla-central/configure file including this:
#!/bin/sh
SRCDIR=$(dirname $0)
TOPSRCDIR="$SRCDIR"
export OLD_CONFIGURE="$SRCDIR"/old-configure
which python2.7 > /dev/null && exec python2.7 "$TOPSRCDIR/configure.py" "$@" || exec python "$TOPSRCDIR/configure.py" "$@"
ac_add_options --target=x86_64-w64-mingw32
ac_add_options --host=x86_64-w64-mingw32

and ran shell by start-shell-msvc2015-x64.bat

It is console output:
 0:01.07 c:\mozilla-build\mozmake\mozmake.EXE -f client.mk -s configure
 0:04.03 cd c:/mozilla-source/mozilla-central/obj-i686-pc-mingw32
 0:04.05 c:/mozilla-source/mozilla-central/configure
 0:04.35 Reexecuting in the virtualenv
 0:04.87 checking for a shell... C:/mozilla-build/msys/bin/sh.exe
 0:05.37 checking for host system type... i686-pc-mingw32
 0:05.37 checking for target system type... i686-pc-mingw32
 0:05.37 checking for a shell... C:/mozilla-build/msys/bin/sh.exe
 0:05.84 checking for host system type... i686-pc-mingw32
 0:05.84 checking for target system type... i686-pc-mingw32
 0:05.84 checking whether cross compiling... no
 0:05.86 checking for the target C compiler... 'd:/PROGRA~3/MICROS~2.0/VC/BIN/amd64/cl.exe'
 0:05.94 checking whether the target C compiler can be used... no
 0:05.94 DEBUG: <truncated - see config.log for full output>
 0:05.94 DEBUG: | #elif __linux__
 0:05.94 DEBUG: | %KERNEL "Linux"
 0:05.94 DEBUG: | #elif _WIN32 || __CYGWIN__
 0:05.94 DEBUG: | %KERNEL "WINNT"
 0:05.94 DEBUG: | #elif __NetBSD__
 0:05.94 DEBUG: | %KERNEL "NetBSD"
 0:05.94 DEBUG: | #elif __APPLE__
 0:05.94 DEBUG: | %KERNEL "Darwin"
 0:05.94 DEBUG: | #endif
 0:05.94 DEBUG: | #if _MSC_VER || __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
 0:05.94 DEBUG: | %ENDIANNESS "little"
 0:05.94 DEBUG: | #elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
 0:05.94 DEBUG: | %ENDIANNESS "big"
 0:05.94 DEBUG: | #endif
 0:05.94 DEBUG: Executing: `cl.exe -E 'd:\users\root\appdata\local\temp\conftest.4c6lnd.c'`
 0:05.94 DEBUG: COMPILER = msvc
 0:05.94 DEBUG: VERSION = 190024215
 0:05.94 DEBUG: CPU = x86_64
 0:05.94 DEBUG: KERNEL = WINNT
 0:05.94 DEBUG: ENDIANNESS = little
 0:05.94 ERROR: Target C compiler target CPU (x86_64) does not match --target CPU (i686)
 0:05.96 *** Fix above errors and then restart with\
 0:05.96                "c:/mozilla-build/mozmake/mozmake.EXE -f client.mk build"
 0:05.97 client.mk:379: recipe for target 'configure' failed
 0:05.97 mozmake.EXE: *** [configure] Error 1
This is not where ac_add_options should be placed. Create a .mozconfig file with the ac_add_options lines in it.
Thanks! Created .mozconfig with those opps and all compiled right!
I met the same problem,and I added a new file named .mozconfig which  ac_add_options lines was written to C:\mozilla-source\mozilla-central.Then mach build.Soved this problem perfectly.
(In reply to 519784120 from comment #13)
> I met the same problem,and I added a new file named .mozconfig which 
> ac_add_options lines was written to C:\mozilla-source\mozilla-central.Then
> mach build.Soved this problem perfectly.

where is .mozconfig created?
(In reply to Mike Hommey [:glandium] from comment #2)
> As the error message says, the compiler you're using cannot build for the
> specified or automatic target. You need to change one or the other.
> 
> If you want a 64-bits Firefox, you need to add:
>   ac_add_options --target=x86-64-pc-mingw32
>   ac_add_options --host=x86-64-pc-mingw32
> 
> to your mozconfig, or use a 64-bits MINGW shell.
> 
> If you want a 32-bits Firefox, you need to replace the Visual
> Studio/VC/bin/amd64 path in $PATH with Visual Studio/VC/bin (or remove it
> altogether, configure should be able to find it)
> 
> I'll leave this bug open, because there might be something we can change to
> configure to make things smoother (and in your case it would mean building a
> 32-bits Firefox by either adjusting the compiler path to pick the 32-bits
> compiler, or add flags to build for 32-bits)

same problem i faced today
I simply went to window powershell
write this command  rustup target add i686-pc-windows-msvc
again run mach build
and things working for me
(In reply to Hemant Singh Patwal from comment #14)
> (In reply to 519784120 from comment #13)
> > I met the same problem,and I added a new file named .mozconfig which 
> > ac_add_options lines was written to C:\mozilla-source\mozilla-central.Then
> > mach build.Soved this problem perfectly.
> 
> where is .mozconfig created?
C:\mozilla-source\mozilla-central
Looks like this issue was addressed by the user in comment 12
Status: UNCONFIRMED → RESOLVED
Closed: 6 years ago
Resolution: --- → INVALID
Component: Build Config → General
Product: Firefox → Firefox Build System
You need to log in before you can comment on or make changes to this bug.