Page 1 of 1

Windows 64 with gcc

Posted: Fri Oct 26, 2007 6:05 am
by digo_rp
guys I move to winxp x64 so now I got an error, windows says that I need to use 64bits version of gcc

I´m using djgpp

anyone knows any way to use other C compiler to compile my 32bits kernel under winxp64 ?

Posted: Fri Oct 26, 2007 1:09 pm
by AJ
Hi,

Not that I've tried it under XP64, but I think a Cygwin Cross-Compiler will be your friend here (I assume Cygwin works ok under Win64?).

Cheers,
Adam

Posted: Fri Oct 26, 2007 4:33 pm
by os64dev
gcc has no native 64bit support only in 32bit crosscompiler. In short it will not work, though i thought that xp64 could run 32bit processes.

Posted: Sat Oct 27, 2007 5:39 am
by AJ
How about installing WinXP 32 bit on MS Virtual PC and having a shared folder? (half joking) :)

Cheers,
Adam

Posted: Sat Oct 27, 2007 5:52 am
by JamesM
Try it under cygwin.

Posted: Sun Oct 28, 2007 10:54 am
by JAAman
JamesM wrote:Try it under cygwin.
exactly...

DJGPP is a 16bit program, and CPUs while running in 64bit mode, will work fine with 32bit programs, but not 16 bit programs

Posted: Sun Oct 28, 2007 4:45 pm
by niteice
Technically, the processor supports it, but Microsoft consciously chose to not support NTVDM under x64. Not a bad idea at all.

Posted: Sun Oct 28, 2007 10:14 pm
by bluecode
niteice wrote:Technically, the processor supports it, [...].
You mean in long-mode? I was pretty sure the processor does not support that. :?

Posted: Sun Oct 28, 2007 11:09 pm
by Brynet-Inc
16bit code cannot run natively in long mode....

It does seem reasonable that Microsoft would remove such a dated compatibility layer.. it's essentially a minimal x86 emulator right?

Posted: Mon Oct 29, 2007 6:35 am
by Combuster
Apparently some people couldn't be bothered to read the documentation :cry:
The AMD Manual wrote:1.3.3 Compatibility Mode
Compatibility mode, a submode of long mode, allows system software to implement binary
compatibility with existing 16-bit and 32-bit x86 applications. It allows these applications to run,
without recompilation, under 64-bit system software in long mode, as shown in Table 1-1 on page 11.

Posted: Mon Oct 29, 2007 7:17 am
by Brynet-Inc
Learn something new every day... :wink:

Posted: Mon Oct 29, 2007 10:59 am
by JAAman
Combuster wrote:Apparently some people couldn't be bothered to read the documentation :cry:
The AMD Manual wrote:1.3.3 Compatibility Mode
Compatibility mode, a submode of long mode, allows system software to implement binary
compatibility with existing 16-bit and 32-bit x86 applications. It allows these applications to run,
without recompilation, under 64-bit system software in long mode, as shown in Table 1-1 on page 11.
and appearantly some people dont know the difference between 16bit PMode, and 16bit RMode -- when i said it was 16bit i intended to imply that it was real mode -- in LMode 16bit PMode is allowed, but not 16bit RMode

when you run DJGPP under windows, windows launches a VMode process to run it in... VMode cannot be used while in LMode...