views:

181

answers:

2

I am trying to build Firefox 3.6 Beta 4 using Visual Studio 2005 on Windows. I downloaded the release source, the latest version of mozilla build, but get the error "C compiler cannot create executables.". I have been able to build all other 3.5 and previous versions without any issues.

The problem occurs at the start of the build process where it is testing whether or not it can even compile and create an executable.

The build output is...

$ make -f client.mk build
Adding client.mk options from /c/dev/ff3.6/mozilla-1.9.2/.mozconfig: 
MOZ_OBJDIR=$(TOPSRCDIR)/obj-firefox
MOZ_CO_PROJECT=browser
make[1]: Entering directory `/c/dev/ff3.6/mozilla-1.9.2'
cd /c/dev/ff3.6/mozilla-1.9.2/obj-firefox
/c/dev/ff3.6/mozilla-1.9.2/configure
Adding configure options from /c/dev/ff3.6/mozilla-1.9.2/.mozconfig:
--disable-tests
--with-windows-version=501
--enable-application=browser
--disable-vista-sdk-requirements
loading cache ./config.cache
checking host system type... i686-pc-mingw32
checking target system type... i686-pc-mingw32
checking build system type... i686-pc-mingw32
checking for gawk... gawk
checking for perl5... no
checking for perl... /bin/perl
checking for gcc... cl
checking whether the C compiler (cl ) works... no
configure: error: installation or configuration problem: C compiler cannot create executables.
*** Fix above errors and then restart with "make -f client.mk build"
make[1]: *** [configure] Error 1
make[1]: Leaving directory `/c/dev/ff3.6/mozilla-1.9.2'
make: *** [/c/dev/ff3.6/mozilla-1.9.2/obj-firefox/Makefile] Error 2


The config.log is...

This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.

configure:1019: checking host system type
configure:1040: checking target system type
configure:1058: checking build system type
configure:1141: checking for gawk
configure:1258: checking for perl5
configure:1258: checking for perl
configure:2350: checking for gcc
configure:2463: checking whether the C compiler (cl ) works
configure:2479: cl -o conftest conftest.c 1>&5
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9024 : unrecognized source file type 'c:/mozilla-build/msys/DTEST=2', object file assumed
conftest.c
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.

/out:DTEST=2.exe
/out:conftest.exe
c:/mozilla-build/msys/DTEST=2
conftest.obj
LINK : fatal error LNK1181: cannot open input file 'c:/mozilla-build/msys/DTEST=2.obj'
configure: failed program was:

#line 2474 "configure"
#include "confdefs.h"


The .mozconfig is ..

# Options for client.mk.
mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/obj-firefox
mk_add_options MOZ_CO_PROJECT=browser

# Options for 'configure' (same as command-line options).
ac_add_options --disable-tests
ac_add_options --with-windows-version=501
ac_add_options --enable-application=browser
ac_add_options --disable-vista-sdk-requirements

Any ideas?

A: 

I don't know too much about MSYS, but it seems as if MSYS and/or configure passes some weird options to the compiler. The compiler seems to interpret "c:/mozilla-build/msys/DTEST=2" as the source file type, which leads me to suspect that /T appears on the command line (see http://msdn.microsoft.com/en-us/library/032xwy55.aspx).

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.762 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.

cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release
cl : Command line warning D9024 : unrecognized source file type 'c:/mozilla-build/msys/DTEST=2', object file assumed
conftest.c
Microsoft (R) Incremental Linker Version 8.00.50727.762
Copyright (C) Microsoft Corporation. All rights reserved.

/out:DTEST=2.exe
/out:conftest.exe
c:/mozilla-build/msys/DTEST=2
conftest.obj
LINK : fatal error LNK1181: cannot open input file 'c:/mozilla-build/msys/DTEST=2.obj'
configure: failed program was:

Can you run the configure-script with the -x option and extract the exact compiler command line?

JesperE
I ran "configure -x" and get error that -x is an invalid option. I tried --x and get similar errors as above. So, possibly not doing what you suggested correctly.I noticed that if I just type in "cl" by itself in the shell that I get similar errors as I do above. It seems that "cl" is really another script file that is possibly calling the Microsoft C compiler with a response file option to pass other command line values.
Ron
Sorry. What I meant was to run `sh -x ./configure`. This will pass -x to the shell executing the script which will make it display all the lines before executing them.
JesperE
only the -o option compile option was passed. Again, the really strange thing is that I get the same above errors if I just run "cl" by itself in the shell command. I did a "where" on cl and it was the proper MSVC compiler. I did using the full path and get the same error. Same error except for any lines that have conftest.exe. But the lines that have DTEST are present. Very confusing, it is like a response file or other command line params are being inserted "magically" :) into the command. I tried "cl /?" and same errors. If I do from normal DOS prompt that works fine
Ron
I think MSYS does do some command line mangling, yes. I know too little about MSYS to be able to help you there.
JesperE
Thanks for your assistance
Ron
A: 

Im try to compile the the following file "TESTFILE.b". My file is in the path /home/santy/dir1/TESTFILE.b I'm compiling the file in following path by excuting the command as /home/santy/> jcompile dir1/TESTFILE.b

Below shows the error.

cl : Command line warning D9035 : option 'o' has been deprecated and will be removed in a future release TESTFILE.c link @D:\Users\MSANTH~1\AppData\Local\Temp\jbuild385 >D:\Users\MSANTH~1\AppData\Local\Temp\jbuild386 failed , command returned a code of 1181 LINK : warning LNK4044: unrecognized option '/DWIN32'; ignored LINK : warning LNK4044: unrecognized option '/MD'; ignored LINK : warning LNK4044: unrecognized option '/W3'; ignored LINK : warning LNK4044: unrecognized option '/GR'; ignored LINK : warning LNK4044: unrecognized option '/EHsc'; ignored LINK : warning LNK4044: unrecognized option '/GF'; ignored LINK : warning LNK4044: unrecognized option '/F5000000'; ignored LINK : warning LNK4044: unrecognized option '/D_LARGEFILE_SOURCE'; ignored LINK : warning LNK4044: unrecognized option '/D_LARGEFILE64_SOURCE'; ignored LINK : warning LNK4044: unrecognized option '/D_FILE_OFFSET_BITS=64'; ignored LINK : fatal error LNK1181: cannot open input file 'QA\TESTFILE.obj' jcompile: QA\TESTFILE.j deleted jcompile: QA\TESTFILE.c deleted jcompile: Returned an error code of 8

cl version:

Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved.

usage: cl [ option... ] filename... [ /link linkoption... ]

Santhosh