From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S265627AbUATSJf (ORCPT ); Tue, 20 Jan 2004 13:09:35 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S265635AbUATSJf (ORCPT ); Tue, 20 Jan 2004 13:09:35 -0500 Received: from chaos.analogic.com ([204.178.40.224]:16519 "EHLO chaos.analogic.com") by vger.kernel.org with ESMTP id S265627AbUATSJZ (ORCPT ); Tue, 20 Jan 2004 13:09:25 -0500 Date: Tue, 20 Jan 2004 13:10:21 -0500 (EST) From: "Richard B. Johnson" X-X-Sender: root@chaos Reply-To: root@chaos.analogic.com To: Zan Lynx cc: Bart Samwel , Ashish sddf , Linux Kernel Mailing List Subject: Re: Compiling C++ kernel module + Makefile In-Reply-To: <1074620079.22023.26.camel@localhost.localdomain> Message-ID: References: <20040116210924.61545.qmail@web12008.mail.yahoo.com> <200401171359.20381.bart@samwel.tk> <400C1682.2090207@samwel.tk> <400C37E3.5020802@samwel.tk> <400C4B17.3000003@samwel.tk> <1074620079.22023.26.camel@localhost.localdomain> MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org 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 > 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.