MozillaZine

Free Visual C++, looking good, we may see alot builders soon

Discussion about official Mozilla Firefox builds
Daath
 
Posts: 191
Joined: May 5th, 2003, 12:41 am
Location: Copenhagen, Denmark

Post Posted April 18th, 2004, 4:26 pm

AFAIK, you need to install the masm32 package and copy masm32\bin\LIB.EXE into Microsoft Visual C++ Toolkit 2003\bin.

Of course I'm being ignorant here, but doesn't that do the same thing that "link /lib" does in the MSVC toolkit?
Any technology distinguishable from magic, is insufficiently advanced.

willll

User avatar
 
Posts: 2577
Joined: November 30th, 2002, 11:39 am
Location: Washington, DC

Post Posted April 18th, 2004, 6:23 pm

lib.exe is located here: C:\Program Files\Microsoft SDK\Bin\Win64 . and YES it doesn work even though you are targetting a 32-bit environment

Daath
 
Posts: 191
Joined: May 5th, 2003, 12:41 am
Location: Copenhagen, Denmark

Post Posted April 18th, 2004, 6:35 pm

No, I mean the command "link /lib" doesn't that do the same as both your lib.exe's?

Code: Select all
D:\Code\MSVC2003>link /lib
Microsoft (R) Library Manager Version 7.10.3052
Copyright (C) Microsoft Corporation.  All rights reserved.

usage: LIB [options] [files]

   options:

      /DEF[:filename]
      /EXPORT:symbol
      /EXTRACT:membername
      /INCLUDE:symbol
      /LIBPATH:dir
      /LIST[:filename]
      /MACHINE:{AM33|ARM|EBC|IA64|M32R|MIPS|MIPS16|MIPSFPU|MIPSFPU16|MIPSR41XX|
                SH3|SH3DSP|SH4|SH5|THUMB|X86}
      /NAME:filename
      /NODEFAULTLIB[:library]
      /NOLOGO
      /OUT:filename
      /REMOVE:membername
      /SUBSYSTEM:{CONSOLE|EFI_APPLICATION|EFI_BOOT_SERVICE_DRIVER|
                  EFI_ROM|EFI_RUNTIME_DRIVER|NATIVE|POSIX|WINDOWS|
                  WINDOWSCE}[,#[.##]]
      /VERBOSE
Any technology distinguishable from magic, is insufficiently advanced.

shill

User avatar
 
Posts: 1443
Joined: December 30th, 2002, 2:00 am
Location: Behind you!

Post Posted April 18th, 2004, 7:18 pm

Daath wrote:No, I mean the command "link /lib" doesn't that do the same as both your lib.exe's?

Yes... your point being?
::my browser info:: | ::my PC info:: | ::my contact info::
PGP fingerprint: E09B 1202 F70E E53E 29BC 5F64 D6D5 9E19 EF92 EA51

shill

User avatar
 
Posts: 1443
Joined: December 30th, 2002, 2:00 am
Location: Behind you!

Post Posted April 18th, 2004, 7:25 pm

willll wrote:lib.exe is located here: C:\Program Files\Microsoft SDK\Bin\Win64 . and YES it doesn work even though you are targetting a 32-bit environment

Well, that one got me further than the masm32 one, but now I'm getting unresolved symbols!?
Code: Select all
   Creating library nspr4.lib and object nspr4.exp
prprf.obj : error LNK2019: unresolved external symbol __aulldvrm referenced in function _cvt_ll
pralarm.obj : error LNK2019: unresolved external symbol __ftol2 referenced in function _pr_PredictNextNotifyTime
prtime.obj : error LNK2019: unresolved external symbol __alldvrm referenced in function _ComputeGMT
nspr4.dll : fatal error LNK1120: 3 unresolved externals
make[5]: *** [nspr4.dll] Error 96
Last edited by shill on April 18th, 2004, 8:49 pm, edited 1 time in total.
::my browser info:: | ::my PC info:: | ::my contact info::
PGP fingerprint: E09B 1202 F70E E53E 29BC 5F64 D6D5 9E19 EF92 EA51

Pitreck

User avatar
 
Posts: 92
Joined: September 2nd, 2003, 5:18 am
Location: Warsaw, Poland

Post Posted April 18th, 2004, 8:38 pm

chocoba65 wrote:AFAIK, you need to install the masm32 package and copy <code>masm32\bin\LIB.EXE</code> into <code>Microsoft Visual C++ Toolkit 2003\bin</code>.

That helped me a little. This is what i've got after:
Code: Select all
make[7]: Nothing to be done for `export'.
make[7]: Leaving directory `/cygdrive/c/mozilla/mozilla/nsprpub/pr/src/threads/c
ombined'
make[6]: Leaving directory `/cygdrive/c/mozilla/mozilla/nsprpub/pr/src/threads'
sh /cygdrive/c/mozilla/mozilla/nsprpub/build/cygwin-wrapper rc.exe  -DMOZILLA_CL
IENT=1 -DNDEBUG=1 -DXP_PC=1 -DWIN32=1 -DWIN95=1 -D_PR_GLOBAL_THREADS_ONLY=1 -D_X
86_=1 -DFORCE_PR_LOG -D_NSPR_BUILD_ -Ic:/mozilla/mozilla/dist/include/nspr -I/cy
gdrive/c/mozilla/mozilla/nsprpub/pr/include -I/cygdrive/c/mozilla/mozilla/nsprpu
b/pr/include/private -Fonspr.res nspr.rc
make[5]: *** [nspr.res] Error 128
make[5]: Leaving directory `/cygdrive/c/mozilla/mozilla/nsprpub/pr/src'
make[4]: *** [export] Error 2
make[4]: Leaving directory `/cygdrive/c/mozilla/mozilla/nsprpub/pr'
make[3]: *** [export] Error 2
make[3]: Leaving directory `/cygdrive/c/mozilla/mozilla/nsprpub'
make[2]: *** [nspr] Error 2
make[2]: Leaving directory `/cygdrive/c/mozilla/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/c/mozilla/mozilla'
make: *** [build] Error 2

So i thought that rc.exe from masm32/bin (it also requires presence of rcdll.dll) might be useful. So i've copied those two to C++ Toolkit/bin directory, but after this i'm again getting nspr4_s.lib error:
Code: Select all
make[6]: Leaving directory `/cygdrive/c/mozilla/mozilla/nsprpub/pr/src/threads'
sh /cygdrive/c/mozilla/mozilla/nsprpub/build/cygwin-wrapper rc.exe  -DMOZILLA_CL
IENT=1 -DNDEBUG=1 -DXP_PC=1 -DWIN32=1 -DWIN95=1 -D_PR_GLOBAL_THREADS_ONLY=1 -D_X
86_=1 -DFORCE_PR_LOG -D_NSPR_BUILD_ -Ic:/mozilla/mozilla/dist/include/nspr -I/cy
gdrive/c/mozilla/mozilla/nsprpub/pr/include -I/cygdrive/c/mozilla/mozilla/nsprpu
b/pr/include/private -Fonspr.res nspr.rc
./nspr.res finished
rm -f nspr4_s.lib
lib -NOLOGO -OUT:"nspr4_s.lib"  ./prvrsion.obj io/./prfdcach.obj io/./prmwait.ob
j io/./prmapopt.obj io/./priometh.obj io/./pripv6.obj io/./prlayer.obj io/./prlo
g.obj io/./prmmap.obj io/./prpolevt.obj io/./prprf.obj io/./prscanf.obj io/./prs
tdio.obj threads/./prcmon.obj threads/./prrwlock.obj threads/./prtpd.obj linking
/./prlink.obj malloc/./prmem.obj md/./prosdep.obj memory/./prshm.obj memory/./pr
shma.obj memory/./prseg.obj misc/./pralarm.obj misc/./pratom.obj misc/./prcountr
.obj misc/./prdtoa.obj misc/./prenv.obj misc/./prerr.obj misc/./prerror.obj misc
/./prerrortable.obj misc/./prinit.obj misc/./prinrval.obj misc/./pripc.obj misc/
./prlog2.obj misc/./prlong.obj misc/./prnetdb.obj misc/./prolock.obj misc/./prrn
g.obj misc/./prsystem.obj misc/./prthinfo.obj misc/./prtpool.obj misc/./prtrace.
obj misc/./prtime.obj malloc/./prmalloc.obj io/./prdir.obj io/./prfile.obj io/./
prio.obj io/./prsocket.obj misc/./pripcsem.obj threads/./prcthr.obj threads/./pr
dump.obj threads/./prmon.obj threads/./prsem.obj threads/combined/./prucpu.obj t
hreads/combined/./prucv.obj threads/combined/./prulock.obj threads/combined/./pr
ustack.obj threads/combined/./pruthr.obj md/windows/./ntmisc.obj md/windows/./nt
sec.obj md/windows/./ntsem.obj md/windows/./ntinrval.obj md/windows/./ntgc.obj m
d/windows/./w95thred.obj md/windows/./w95io.obj md/windows/./w95cv.obj md/window
s/./w95sock.obj md/windows/./win32_errors.obj md/windows/./w32ipcsem.obj md/wind
ows/./w32poll.obj md/windows/./w32rng.obj md/windows/./w32shm.obj md/windows/./w
95dllmain.obj  ./nspr.res
make[5]: *** [nspr4_s.lib] Error 128
make[5]: Leaving directory `/cygdrive/c/mozilla/mozilla/nsprpub/pr/src'
make[4]: *** [export] Error 2
make[4]: Leaving directory `/cygdrive/c/mozilla/mozilla/nsprpub/pr'
make[3]: *** [export] Error 2
make[3]: Leaving directory `/cygdrive/c/mozilla/mozilla/nsprpub'
make[2]: *** [nspr] Error 2
make[2]: Leaving directory `/cygdrive/c/mozilla/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/c/mozilla/mozilla'
make: *** [build] Error 2

I'm confused

green13
 
Posts: 82
Joined: February 28th, 2004, 9:59 am

Post Posted April 19th, 2004, 1:08 am

pitreck
So tell me, *EXACTLY* how did you overcome your windows.h error? Here is mine
Code: Select all
make[4]: Entering directory `/cygdrive/d/Dev/mozilla/mozilla/nsprpub/config'
sh /cygdrive/d/Dev/mozilla/mozilla/nsprpub/build/cygwin-wrapper cl -Fonow.obj -c     -W3 -nologo -GF -Gy -MD -O2 -G7 -GL   -U
DEBUG -U_DEBUG -UWINNT -DMOZILLA_CLIENT=1 -DNDEBUG=1 -DXP_PC=1 -DWIN32=1 -DWIN95=1 -D_PR_GLOBAL_THREADS_ONLY=1 -D_X86_=1  -DF
ORCE_PR_LOG   /cygdrive/d/Dev/mozilla/mozilla/nsprpub/config/now.c
now.c
d:/Dev\mozilla\mozilla\nsprpub\config\now.c(43) : fatal error C1083: Cannot open include file: 'windows.h': No such file or directory
make[4]: *** [now.obj] Error 2
make[4]: Leaving directory `/cygdrive/d/Dev/mozilla/mozilla/nsprpub/config'
make[3]: *** [export] Error 2
make[3]: Leaving directory `/cygdrive/d/Dev/mozilla/mozilla/nsprpub'
make[2]: *** [nspr] Error 2
make[2]: Leaving directory `/cygdrive/d/Dev/mozilla/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/d/Dev/mozilla/mozilla'
make: *** [build] Error 2


Here is my mozset.bat
Code: Select all
@echo off
set MOZ_TOOLS=d:\dev\mozilla\moztools
set GLIB_PREFIX=d:\dev\mozilla\w32build\vc++
set LIBIDL_PREFIX=d:\dev\mozilla\w32build\vc++
set MOZ_SRC=d:\dev\mozilla
call c:\"program files"\VC++\vcvars32.bat
set PATH=%PATH%;c:\program files\microsoft sdk\bin;d:\dev\mozilla\cygwin\bin;%GLIB_PREFIX%\bin;%LIBIDL_PREFIX%\bin;%MOZ_TOOLS%\bin
set HOME=d:\dev\mozilla
set CVSROOT=:pserver:anonymous@cvs-mirror.mozilla.org:/cvsroot


I tried adding c:\program files\microsoft sdk\include to my PATH statement - no dice. I tried adding the Windows.h file to the \mozilla\nsprpub\config dir - no dice.

What is the solution for this and go easy on me as I am a newbie!

Pitreck

User avatar
 
Posts: 92
Joined: September 2nd, 2003, 5:18 am
Location: Warsaw, Poland

Post Posted April 19th, 2004, 1:52 am

->green13
Well, in first place i copied this file from Microsoft SDK\include to Microsoft Visual C++ Toolkit 2003\Include. But it's not a solution, after doing that it will prompt you for another file, and another. It probably will need most of the files in Microsoft SDK\Include folder. I've resolved this problem by editing vcvars32.bat file and replacing INCLUDE path from Microsoft Visual C++ Toolkit 2003\Include to Microsoft SDK\include, so is looks like this:
Code: Select all
@echo off

Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;%PATH%
Set INCLUDE=C:\Program Files\Microsoft SDK\include;%INCLUDE%
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%LIB%


You can try to put both C++ and SDK pathes in Set Include, maybe it will work. When i played with it i was to tired to got on this, so i simply copied content of C++\include to SDK\include...

green13
 
Posts: 82
Joined: February 28th, 2004, 9:59 am

Post Posted April 19th, 2004, 2:13 am

Pitreck
Alright, I just tried the following as you suggested
...resolved this problem by editing vcvars32.bat file and replacing INCLUDE path from Microsoft Visual C++ Toolkit 2003\Include to Microsoft SDK\include...so i simply copied content of C++\include to SDK\include...

Here is the new error I am getting:
Code: Select all
make[2]: Leaving directory `/cygdrive/d/Dev/mozilla/mozilla/config'
/usr/bin/make nspr
make[2]: Entering directory `/cygdrive/d/Dev/mozilla/mozilla'
/usr/bin/make -C nsprpub
make[3]: Entering directory `/cygdrive/d/Dev/mozilla/mozilla/nsprpub'
cd config; /usr/bin/make -j1 export
make[4]: Entering directory `/cygdrive/d/Dev/mozilla/mozilla/nsprpub/config'
sh /cygdrive/d/Dev/mozilla/mozilla/nsprpub/build/cygwin-wrapper cl -Fonow.obj -c     -W3 -nologo -GF -Gy -MD -O2 -G7 -GL   -U
DEBUG -U_DEBUG -UWINNT -DMOZILLA_CLIENT=1 -DNDEBUG=1 -DXP_PC=1 -DWIN32=1 -DWIN95=1 -D_PR_GLOBAL_THREADS_ONLY=1 -D_X86_=1  -DF
ORCE_PR_LOG   /cygdrive/d/Dev/mozilla/mozilla/nsprpub/config/now.c
now.c
sh /cygdrive/d/Dev/mozilla/mozilla/nsprpub/build/cygwin-wrapper cl  now.obj   /Fenow.exe
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3052 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.

Microsoft (R) Incremental Linker Version 7.10.3052
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:now.exe
now.obj
now.obj : warning LNK4218: non-native module found; restarting link with /LTCG
Microsoft (R) Incremental Linker Version 7.10.3052
Copyright (C) Microsoft Corporation.  All rights reserved.

/out:now.exe
now.obj
LINK : fatal error LNK1104: cannot open file 'uuid.lib'
make[4]: *** [now.exe] Error 2
make[4]: Leaving directory `/cygdrive/d/Dev/mozilla/mozilla/nsprpub/config'
make[3]: *** [export] Error 2
make[3]: Leaving directory `/cygdrive/d/Dev/mozilla/mozilla/nsprpub'
make[2]: *** [nspr] Error 2
make[2]: Leaving directory `/cygdrive/d/Dev/mozilla/mozilla'
make[1]: *** [default] Error 2
make[1]: Leaving directory `/cygdrive/d/Dev/mozilla/mozilla'
make: *** [build] Error 2

That is just plain weird. I also tried have both SDK/bin and VC toolkit/bin in the INCLUDE path and recieved the same error. WTF is going on?

Mook
 
Posts: 1752
Joined: November 7th, 2002, 9:35 pm

Post Posted April 19th, 2004, 2:41 am

Try this: For both INCLUDE and LIB, make sure the both the compiler version and the PSDK version are there: (split the lines, only to make sure I don't kill the forums)
Code: Select all
Set INCLUDE=C:\Program Files\Microsoft SDK\include;%INCLUDE%
Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;%INCLUDE%
Set LIB=C:\Program Files\Microsoft SDK\lib;%LIB%
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%LIB%


Double check the paths - I don't actually have a copy of the toolkit. Usually copying random files around is not a good thing.
poot.

Pitreck

User avatar
 
Posts: 92
Joined: September 2nd, 2003, 5:18 am
Location: Warsaw, Poland

Post Posted April 19th, 2004, 3:47 am

->green13
VC++ Toolkit needs several files from SDK\lib and Visual Studio .Net 2003\vc7. Again, you can copy those files or put paths to they. As far as i can tell, those files are:
Microsoft SDK\lib\uuid.lib
Microsoft Visual Studio .NET 2003\Vc7\lib\msvcrt.lib
Microsoft Visual Studio .NET 2003\Vc7\lib\msvcrtd.lib

green13
 
Posts: 82
Joined: February 28th, 2004, 9:59 am

Post Posted April 19th, 2004, 3:49 am

mook
That is not working either, It keeps coming back with anothe file it needs. It lis looking for files in SDK/lib/IA64 among others - files like uuid.lib. Is there anyway we can simply put all of the *.lib files in one place and streamline this?

green13
 
Posts: 82
Joined: February 28th, 2004, 9:59 am

Post Posted April 19th, 2004, 3:50 am

Pitreck
Paths to the actual files? Should I use individual PATH statements for each file in MOZSET.BAT? If I copy, where should I copy them all to?

Examples would be appreciated!

Pitreck

User avatar
 
Posts: 92
Joined: September 2nd, 2003, 5:18 am
Location: Warsaw, Poland

Post Posted April 19th, 2004, 4:06 am

->green13
No, paths to the directorys in vcvars32.bat (if putting two paths in Set LIB* really gives us what we are expecting). Otherwise simply copy those files to C++ toolkit\lib...

*Example:
Code: Select all
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%LIB%;C:\Program Files\Microsoft Visual Studio .NET 2003\Vc7\lib\;%LIB%

Make sure that it is in one line.

Malakai

User avatar
 
Posts: 172
Joined: July 15th, 2003, 3:11 pm
Location: Florida

Post Posted April 19th, 2004, 5:04 am

After downloading the SDK and the toolkit, edit the vcvars32.bat file to look like:

Code: Select all
@echo off

Set PATH=C:\Program Files\Microsoft Visual C++ Toolkit 2003\bin;%PATH%;C:\Program Files\Microsoft SDK\Bin
Set INCLUDE=C:\Program Files\Microsoft Visual C++ Toolkit 2003\include;%INCLUDE%;C:\Program Files\Microsoft SDK\include
Set LIB=C:\Program Files\Microsoft Visual C++ Toolkit 2003\lib;%LIB%;C:\Program Files\Microsoft SDK\Lib


It seems all the files we need were inside the SDK's bin, include, and lib directories. No one has suggested adding the /bin into the path as well.

Return to Firefox Builds


Who is online

Users browsing this forum: WildcatRay and 4 guests