Re: Compiling C++ kernel module + Makefile

From: Richard B. Johnson
Date: Tue Jan 20 2004 - 13:12:06 EST


On Tue, 20 Jan 2004, Zan Lynx wrote:

> On Tue, 2004-01-20 at 08:20, Richard B. Johnson wrote:
> > Nevertheless, I provide three programs, one written in
> > C, the other in C++ and the third in assembly. A tar.gz
> > file is attached for those interested.
> >
> > -rwxr-xr-x 1 root root 57800 Jan 20 10:16 hello+
> > -rwxr-xr-x 1 root root 460 Jan 20 10:16 helloa
> > -rwxr-xr-x 1 root root 2948 Jan 20 10:16 helloc
> >
> > The code size, generated from assembly is 460 bytes.
> > The code size, generated from C is 2,948 bytes.
> > The code size, generated from C++ is 57,800 bytes.
> >
> > Clearly, C++ is not the optimum language for writing
> > a "Hello World" program.
>
> I like C++ and hate to see it so unfairly maligned. Here's a much
> better example:
>
> Makefile:
> helloc: hello.c
> gcc -Os -s -o helloc hello.c
>
> hellocpp: hello.cpp
> g++ -Os -fno-rtti -fno-exceptions -s -o hellocpp hello.cpp
>
> Both programs contain exactly the same code: one main() function using
> puts("Hello world!").
>
> # ls -l
> -rwxrwxr-x 1 jbriggs jbriggs 2840 Jan 20 10:02 helloc
> -rwxrwxr-x 1 jbriggs jbriggs 2948 Jan 20 10:06 hellocpp
>
> 108 extra bytes is hardly the end of the world.
> --
> Zan Lynx <zlynx@xxxxxxx>
>

Well you just fell into the usual trap of using the "C-like"
capabilities of C++ to call a 'C' function. If you are going
to use 'C' library functions, you don't use an object-oriented
language to call them. That is using a hatchet like a hammer.

I did not malign C++. I used it as it was designed and let
the chips fall where they may.

Cheers,
Dick Johnson
Penguin : Linux version 2.4.24 on an i686 machine (797.90 BogoMips).
Note 96.31% of all statistics are fiction.


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/