This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
preprocessor/6076: cross-compiled libcpp handles CPLUS_INCLUDE_PATH wrong
- From: f_ker at yahoo dot co dot uk
- To: gcc-gnats at gcc dot gnu dot org
- Date: 28 Mar 2002 03:27:29 -0000
- Subject: preprocessor/6076: cross-compiled libcpp handles CPLUS_INCLUDE_PATH wrong
- Reply-to: f_ker at yahoo dot co dot uk
>Number: 6076
>Category: preprocessor
>Synopsis: cross-compiled libcpp handles CPLUS_INCLUDE_PATH wrong
>Confidential: no
>Severity: critical
>Priority: high
>Responsible: unassigned
>State: open
>Class: rejects-legal
>Submitter-Id: net
>Arrival-Date: Wed Mar 27 19:36:00 PST 2002
>Closed-Date:
>Last-Modified:
>Originator: f_ker@yahoo.co.uk
>Release: 3.0.4
>Organization:
>Environment:
host=build=i686-pc-linux-gnu
target=arm-thumb-elf
>Description:
Putting any file with templates in it in the CPLUS_INCLUDE_PATH and running it through (in my case) the arm-thumb-elf-g++ libcpp on host i686-pc-linux-gnu (gcc 3.0.4) produces an error "template with C linkage" pointing to declaration of templatised class.
>How-To-Repeat:
Put the following in a file (lets call it dummy.hh):
template<typename T>
struct Dummy
{
};
Put dummy.hh somewhere in CPLUS_INCLUDE_PATH (but not in current directory)
Put the following in another file (lets call it main.cc):
#include <dummy.hh>
do a 'arm-thumb-elf-g++ main.cc'.
Error:
In file included from main.cc:1:
/home/foobar/include/dummy.hh:2: template with C linkage
As far as I know, it only gives an error when using 'arm-thumb-elf-g++' on 'i686-pc-linux-gnu' host/build. But when using native 'i686-pc-linux-gnu-g++', all is well and dandy. Very strange.
>Fix:
>Release-Note:
>Audit-Trail:
>Unformatted: