Watcom: Difference between revisions

From OSDev.wiki
Jump to navigation Jump to search
[unchecked revision][unchecked revision]
Content deleted Content added
No edit summary
No edit summary
Line 5: Line 5:
== How can I tell Watcom to produce XXX files? ==
== How can I tell Watcom to produce XXX files? ==
Natively, all Watcom C/C++ compilers can produce is OMF (.obj) files by default. Natively, all Watcom C/C++ compilers can produce is OMF (.obj) files by default.
Natively, all Watcom C/C++ compilers can produce is OMF (.obj) files by default. Natively, all Watcom C/C++ compilers can produce is OMF (.obj) files by default.
:''Comment removed due to inaccuracy([http://forum.osdev.org/viewtopic.php?f=8&t=18201 Look here]) -- cr2''
:''Removed due to inaccuracy([http://forum.osdev.org/viewtopic.php?f=8&t=18201 Look here]) -- cr2''


== What are the differences between Watcom 11.0c and Open Watcom 1.3? ==
== What are the differences between Watcom 11.0c and Open Watcom 1.3? ==

Revision as of 21:14, 17 October 2008

The Watcom compiler suite is a powerful (reputed to produce the best optimized code for 16 and 32 bits programs by demosceners and game coders in end '90s) compiler/assembler/make/linker suite that comes with tools for binary files manipulations.

I stopped using Watcom in favour for GCC. Watcom only does x86 output. If I ever get my kernel working I'll try a Watcom port and post all the methods I used to get it working -REV

How can I tell Watcom to produce XXX files?

Natively, all Watcom C/C++ compilers can produce is OMF (.obj) files by default. Natively, all Watcom C/C++ compilers can produce is OMF (.obj) files by default.

Removed due to inaccuracy(Look here) -- cr2

What are the differences between Watcom 11.0c and Open Watcom 1.3?

Nothing really, both compile the code almost the same except a few new features are added.

Such as? --[Kemp|TheKemp]

Why is my final executable not in fact executable?

Watcom has a habit of inserting additional function calls in your code which are not necessarily available in the final binary. To work around this add the '-s' switch to the command line you call the compiler with, this switch removes stack overflow checking. However the 32-bit C (Wcc386) and C++ (Wpp386) insert function calls that the processor will flag as invalid and if the interrupt controllers are not fixed the CPU will triple fault. This does not seem to a trouble with the 16-bit compilers. I am still trying to figure out how to bypass these calls.

Linking Watcom produced object files and linking them with JLOC causes some problems at runtime

Watcom makes DS follow the DS:DGROUP and if you do not want that structure your going to have to fiddle with Jloc.