Here's a short answer.
gcc = 32- or 64-bit code compiler, end of story. Doesn't do 8- or
16-bit code at all. Doesn't handle segmented architecture too well,
from what I understand. 8086/88 = 16-bit segmented architecture with no
mode of "flat" addressing or limitless segment size. Big problem.
bcc = 16-bit capable compiler taken from the Minix system, designed with
the 16-bit real-mode 8086 in mind, handles the ugly intricate details
that gcc can smile and avoid due to the use of flat protected mode
memory blahblahblah.
Assembly is likely used to optimize certain functions or to ensure that
the function behaves correctly independent of changes in bcc and the
8086 libc. ELKS is not intended to be portable across CPUs at all; only
8086 CPUs are targeted, with 80286 protected-mode code that doesn't (and
likely will never) work fully. Linux itself started with a lot of asm
in the code, and as it grew like a virus in popularity, the
arch-specific asm chunks were moved around so that new architectures
could be ported to with more ease. ELKS isn't that popular, thus size
and speed optimized assembly routines are totally acceptable, especially
since we're constantly hitting those damned segment limits already.
That's my take, but I'm not a C programmer. Also, don't send mail to
list subscribers if you send it to the ELKS list, because duplicate
messages are a big irritant of mine. Keep in mind that we get the list,
and thus we're already getting one copy.
Jody
Vikas Kumar wrote:
I had a question. What is the advantage of using bcc over gcc. Why is
bcc being used in some parts of the code vs gcc in other parts of the
code. A large part of the code where bcc is used to compile uses a lot
of assembly, rather than C. Why was it written this way ? Any pointers
?
Vikas
On 6/5/06, Jody <jbruchon@xxxxxxxxx> wrote:
Has anyone been doing any programming on ELKS as of late?
-
To unsubscribe from this list: send the line "unsubscribe linux-8086" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-8086" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
-
To unsubscribe from this list: send the line "unsubscribe linux-8086" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html