Page 2 of 2
Re: Bochs build
Posted: Fri Mar 28, 2014 3:24 am
by Bender
You'll feel disappointed but..
2.4.2
(that's a really old release I guess)
I'll test out 2.6.2, and see if it works.
Re: Bochs build
Posted: Fri Mar 28, 2014 3:35 am
by hometue
Well I was curious if you compiled the one with the enhanced debugger (2.6.1 and above). I guess if I fail the build for this version I know which one to use.
Re: Bochs build
Posted: Fri Mar 28, 2014 3:56 am
by Bender
Hi,
I have built Bochs 2.6.2 with MSVC, there were a few problems (related with file permissions) in iodev/network/slirp/tftp.cc where they've used some file permission constants which go undefined
, the trick was to add this in tftp.cc:
Code: Select all
//! Compiling for Windows??
#ifdef _WIN32
#include <io.h>
typedef int mode_t;
//! It's really BS, that I have to add this piece of puke for no reason
static const mode_t S_ISUID = 0x08000000;
static const mode_t S_ISGID = 0x04000000;
static const mode_t S_ISVTX = 0x02000000;
static const mode_t S_IRUSR = mode_t(_S_IREAD); //! USER READ
static const mode_t S_IWUSR = mode_t(_S_IWRITE); //! USER WRITE
static const mode_t S_IXUSR = 0x00400000;
#ifndef STRICT_UGO_PERMISSIONS
static const mode_t S_IXOTH = 0x00010000;
static const mode_t S_IRGRP = mode_t(_S_IREAD); //! USER READ
static const mode_t S_IWGRP = mode_t(_S_IWRITE); //! USER WRITE
static const mode_t S_IXGRP = 0x00080000;
static const mode_t S_IROTH = mode_t(_S_IREAD); //! USER READ
static const mode_t S_IWOTH = mode_t(_S_IWRITE); //! USER WRITE
#else
static const mode_t S_IXGRP = 0x00080000;
static const mode_t S_IWGRP = 0x00100000;
static const mode_t S_IROTH = 0x00040000;
static const mode_t S_IWOTH = 0x00020000;
static const mode_t S_IXOTH = 0x00010000;
static const mode_t S_IRGRP = 0x00200000;
#endif
static const mode_t MS_MODE_MASK = 0x0000FFFF;
#endif
Yes, I've compiled the release with --enable-debugger.
And just try the steps given in the previous post, you should be able to compile Bochs now.
One thing to note is that MSVC may have some problems when you are accessing the sources when it's compiling. So it's better to
close all such file browsers before compiling. It's recommended to run "Clean Solution" and "Clean Build" after you've done compiling it.
Note: Sometimes MSVC tries to troll you, I don't know what actually went wrong, but it said that 17 builds went ok and 1 build
failed, when I built it again (no changes) it worked perfectly.
-Bender
Re: Bochs build
Posted: Fri Mar 28, 2014 4:53 am
by sortie
Bender: sys/stat.h?
Re: Bochs build
Posted: Fri Mar 28, 2014 5:06 am
by Bender
Isn't it *NIXy? When compiling for Windows I always define these constants myself.
Re: Bochs build
Posted: Fri Mar 28, 2014 7:45 am
by sortie
No. MSVC has them too. Never declare such constants yourself.
Re: Bochs build
Posted: Fri Mar 28, 2014 7:49 am
by Bender
Then I've successfully broken my MSVC Installation.
EDIT: I posted the report today and they've fixed it.
http://sourceforge.net/p/bochs/discussi ... it=50#8cea
Re: Bochs build
Posted: Sat Mar 29, 2014 2:37 am
by hometue
After building bochs,I successfully concluded MSVC is...dumb. It doesn't compiles something successfully 1 moment and does the next. Now I know why I don't use it. (Or is my MSVC screwed up? Its a new installation)
Re: Bochs build
Posted: Sat Mar 29, 2014 5:00 am
by Bender
hometue: It's Microsoft Visual C++ 2010
M$ doesn't care about older versions, they are as buggy as they were.
What do you expect?
Re: Bochs build
Posted: Fri Apr 04, 2014 1:23 am
by hometue
Hey, I know that its been quite long, but I can't get the compilation working (yeah, got busy so didn't have too much time to do it until recently). I am almost done with compiling except for bochs, which after many times of compiling still has problem (I went to VC++ 2008, apparently 2010 was giving me too much problems and the 2008 one was more stable). I tried to solve it (trust me, I googled this time only to find a problem which is already fixed but quite similar, link here just in case it is actually the same:
http://sourceforge.net/p/bochs/bugs/1227/) Basically VC++ is constantly telling me there are unresolved symbols. I will paste the log where the errors are.
Code: Select all
crc.cc
Generating Code...
Compiling resources...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation. All rights reserved.
Linking...
cpu.lib(event.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl BX_CPU_C::VMX_Deliver_Virtual_Interrupt(void)" (?VMX_Deliver_Virtual_Interrupt@BX_CPU_C@@SAXXZ) referenced in function "public: static void __cdecl BX_CPU_C::InterruptAcknowledge(void)" (?InterruptAcknowledge@BX_CPU_C@@SAXXZ)
cpu.lib(event.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl BX_CPU_C::VMX_Virtual_Apic_Access_Trap(void)" (?VMX_Virtual_Apic_Access_Trap@BX_CPU_C@@SAXXZ) referenced in function "public: static unsigned int __cdecl BX_CPU_C::handleAsyncEvent(void)" (?handleAsyncEvent@BX_CPU_C@@SAIXZ)
cpu.lib(paging.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl BX_CPU_C::VMX_Virtual_Apic_Write(unsigned __int64,unsigned int,void *)" (?VMX_Virtual_Apic_Write@BX_CPU_C@@SAX_KIPAX@Z) referenced in function "public: static void __cdecl BX_CPU_C::access_write_physical(unsigned __int64,unsigned int,void *)" (?access_write_physical@BX_CPU_C@@SAX_KIPAX@Z)
cpu.lib(paging.obj) : error LNK2019: unresolved external symbol "public: static unsigned int __cdecl BX_CPU_C::is_virtual_apic_page(unsigned __int64)" (?is_virtual_apic_page@BX_CPU_C@@SAI_K@Z) referenced in function "public: static void __cdecl BX_CPU_C::access_write_physical(unsigned __int64,unsigned int,void *)" (?access_write_physical@BX_CPU_C@@SAX_KIPAX@Z)
cpu.lib(paging.obj) : error LNK2019: unresolved external symbol "public: static unsigned __int64 __cdecl BX_CPU_C::VMX_Virtual_Apic_Read(unsigned __int64,unsigned int,void *)" (?VMX_Virtual_Apic_Read@BX_CPU_C@@SA_K_KIPAX@Z) referenced in function "public: static void __cdecl BX_CPU_C::access_read_physical(unsigned __int64,unsigned int,void *)" (?access_read_physical@BX_CPU_C@@SAX_KIPAX@Z)
cpu.lib(vmx.obj) : error LNK2019: unresolved external symbol "public: static unsigned int __cdecl BX_CPU_C::VMX_Read_Virtual_APIC(unsigned int)" (?VMX_Read_Virtual_APIC@BX_CPU_C@@SAII@Z) referenced in function "public: static enum VMX_error_code __cdecl BX_CPU_C::VMenterLoadCheckVmControls(void)" (?VMenterLoadCheckVmControls@BX_CPU_C@@SA?AW4VMX_error_code@@XZ)
cpu.lib(msr.obj) : error LNK2001: unresolved external symbol "public: static unsigned int __cdecl BX_CPU_C::VMX_Read_Virtual_APIC(unsigned int)" (?VMX_Read_Virtual_APIC@BX_CPU_C@@SAII@Z)
cpu.lib(crregs.obj) : error LNK2001: unresolved external symbol "public: static unsigned int __cdecl BX_CPU_C::VMX_Read_Virtual_APIC(unsigned int)" (?VMX_Read_Virtual_APIC@BX_CPU_C@@SAII@Z)
cpu.lib(vmx.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl BX_CPU_C::VMX_TPR_Virtualization(void)" (?VMX_TPR_Virtualization@BX_CPU_C@@SAXXZ) referenced in function "public: static void __cdecl BX_CPU_C::VMLAUNCH(class bxInstruction_c *)" (?VMLAUNCH@BX_CPU_C@@SAXPAVbxInstruction_c@@@Z)
cpu.lib(crregs.obj) : error LNK2001: unresolved external symbol "public: static void __cdecl BX_CPU_C::VMX_TPR_Virtualization(void)" (?VMX_TPR_Virtualization@BX_CPU_C@@SAXXZ)
cpu.lib(msr.obj) : error LNK2019: unresolved external symbol "public: static unsigned int __cdecl BX_CPU_C::Virtualize_X2APIC_Write(unsigned int,unsigned __int64)" (?Virtualize_X2APIC_Write@BX_CPU_C@@SAII_K@Z) referenced in function "public: static void __cdecl BX_CPU_C::WRMSR(class bxInstruction_c *)" (?WRMSR@BX_CPU_C@@SAXPAVbxInstruction_c@@@Z)
cpu.lib(crregs.obj) : error LNK2019: unresolved external symbol "public: static void __cdecl BX_CPU_C::VMX_Write_Virtual_APIC(unsigned int,unsigned int)" (?VMX_Write_Virtual_APIC@BX_CPU_C@@SAXII@Z) referenced in function "public: static void __cdecl BX_CPU_C::WriteCR8(class bxInstruction_c *,unsigned __int64)" (?WriteCR8@BX_CPU_C@@SAXPAVbxInstruction_c@@_K@Z)
.\..\obj-release\bochs.exe : fatal error LNK1120: 9 unresolved externals
Sorry if the answer is staring at me or should be obvious, but I really don't know what to do now. Can someone give me some help?(Looking at these are really frustrating I wished I got a working Ubuntu installation before my partitions had some problems)
Re: Bochs build
Posted: Fri Apr 04, 2014 2:35 am
by Bender
apparently 2010 was giving me too much problems and the 2008 one was more stable).
What problems were they? VS 2008 is possibly (
) dead?
Re: Bochs build
Posted: Fri Apr 04, 2014 2:57 am
by hometue
Randomly something would build and not build. You did tell me that it happens but 2008 didn't have this issues so I thought it will be better to use 2008. (And besides I never got to this stage for 2010 after like, tons and tons of times, something else would have failed before it)
Re: Bochs build
Posted: Sat Apr 05, 2014 2:14 am
by hometue
Ok, I fixed it...so just for reference, here are the steps I took to compile bochs:
http://emulators.com/docs/nx30_bochs245.htm , basically, use nmake(why? I don't know, but if bochs uses nmake why not. I still don't understand why its better). I am gonna go check on if it works. Phew...finally, praise the...um...Unix? (I got nothing). Now I shall go and run bochs with the debugger. Anyway thanks Bender for helping. (and I still used 2008 version of the command tools so Bender, I don't think its dead). And should we add this link to the external links in the Bochs wiki page? I find this quite informative despite being about an older version.