From owner-freebsd-ports Mon Jul 6 15:49:50 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id PAA06468 for freebsd-ports-outgoing; Mon, 6 Jul 1998 15:49:50 -0700 (PDT) (envelope-from owner-freebsd-ports@FreeBSD.ORG) Received: from alpo.whistle.com (alpo.whistle.com [207.76.204.38]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id PAA06462; Mon, 6 Jul 1998 15:49:44 -0700 (PDT) (envelope-from terry@whistle.com) Received: (from daemon@localhost) by alpo.whistle.com (8.8.5/8.8.5) id PAA05814; Mon, 6 Jul 1998 15:39:10 -0700 (PDT) Received: from tlambert.whistle.com(207.76.205.208) via SMTP by alpo.whistle.com, id smtpd005812; Mon Jul 6 22:39:09 1998 Message-ID: <35A1519D.60D4@whistle.com> Date: Mon, 06 Jul 1998 15:37:18 -0700 From: Terry Lambert Organization: Whistle Communications X-Mailer: Mozilla 3.01Gold (Win95; I) MIME-Version: 1.0 To: obrien@FreeBSD.ORG, jdp@FreeBSD.ORG, freebsd-ports@FreeBSD.ORG Subject: gcc/g++ 2.8.1 port maintainers/modifiers Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Sender: owner-freebsd-ports@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org There appears to be a problem with the non-installation of the include files in the port. Specifically, the include file "typeinfo" is not installed, and it seems that there is not a sperate installation of a "include/g++28/" directory, in general, and that an installed "/usr/local/bin/g++28" therefore uses the previous "g++" includes, which are for g++ 2.7.2. This results in failures when attempting to use runtime type information (RTTI). This is just the most obvious failure; I am sure there are other compiler/include file mismatches... Specifically, things like: #include // pseudocode... too lazy, too obvious, takes too much space... class foo { ... }; class fee : public foo { ... }; class fum : public foo { ... }; // real code follows... void gettype( char *s, foo *obj) { if( typeid(foo) == typeid(*obj)) printf( "object named '%s' is of type foo\n", s); else if( typeid(fee) == typeid(*obj)) printf( "object named '%s' is of type fee\n", s); else printf( "object named '%s' is an unknown subclass (%s), s, typeid(*obj).name); } main() { foo *foo1; fee *foo2; fum *foo3; foo1 = new foo; foo2 = new fee; foo3 = new fum; gettype( "foo1", foo1); gettype( "foo2", foo2); gettype( "foo3", foo3); } Fail because the wrong gets included. This works correctly when you use the gnu configure based install. I recommend making the compiler reference an ./include/g++28/ directory, and installing the correct include hierarchy there, wherever that is (probably /usr/local/) to resolve the problem. Sorry, I don't have patches; I don't quite follow the way the ports are supposed to actually work, and am too buried to be able to pitch in on fixing the port. 8-(. -- Regards, -- Terry Lambert -- Whistle Communications, Inc. To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-ports" in the body of the message