This is the mail archive of the
ecos-patches@sourceware.org
mailing list for the eCos project.
Fix arm-elf-gcc 3.2.1 failure to build cxxsupp test
- From: jlarmour at ecoscentric dot com (Jonathan Larmour)
- To: ecos-patches at ecos dot sourceware dot org
- Date: Sat, 14 Feb 2009 03:15:01 +0000 (GMT)
- Subject: Fix arm-elf-gcc 3.2.1 failure to build cxxsupp test
Index: ChangeLog
===================================================================
RCS file: /cvs/ecos/ecos/packages/infra/current/ChangeLog,v
retrieving revision 1.66
diff -u -5 -p -r1.66 ChangeLog
--- ChangeLog 4 Feb 2009 16:59:41 -0000 1.66
+++ ChangeLog 14 Feb 2009 03:15:00 -0000
@@ -1,5 +1,14 @@
+2009-02-14 Jonathan Larmour <jifl@eCosCentric.com>
+
+ * tests/cxxsupp.cxx (cyg_start): Only test 'new' with ARM tools after
+ 3.2.x since up to that point the compiler generates references from
+ the libsupc++ new implementation to .gcc_except_table, which is
+ discarded. This is specific to ARM for now as that's all it has
+ been reported against, but it's possible it may apply to other
+ targets.
+
2009-02-04 Bart Veer <bartv@ecoscentric.com>
* include/cyg_type.h: add new static initialization priorities.
Add macros to support static initialization from C as well as C++.
@@ -1067,11 +1076,11 @@ Tue Aug 25 11:47:58 1998 Jonathan Larmo
//===========================================================================
// ####GPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
-// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
+// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2009 Free Software Foundation, Inc.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 or (at your option) any
// later version.
Index: tests/cxxsupp.cxx
===================================================================
RCS file: /cvs/ecos/ecos/packages/infra/current/tests/cxxsupp.cxx,v
retrieving revision 1.7
diff -u -5 -p -r1.7 cxxsupp.cxx
--- tests/cxxsupp.cxx 29 Jan 2009 17:49:44 -0000 1.7
+++ tests/cxxsupp.cxx 14 Feb 2009 03:15:00 -0000
@@ -6,11 +6,11 @@
//
//==========================================================================
// ####ECOSGPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
-// Copyright (C) 2003 Free Software Foundation, Inc.
+// Copyright (C) 2003, 2009 Free Software Foundation, Inc.
//
// eCos is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free
// Software Foundation; either version 2 or (at your option) any later
// version.
@@ -45,13 +45,15 @@
// Description: Simple test for C++ runtime support.
//
//####DESCRIPTIONEND####
//==========================================================================
+#include <pkgconf/system.h>
#include <pkgconf/hal.h>
#include <pkgconf/isoinfra.h>
+#include <cyg/infra/cyg_type.h>
#include <cyg/infra/testcase.h>
#include <cyg/infra/diag.h>
// The H8300 does not have C++ support in its toolchain
#ifndef CYGPKG_HAL_H8300
@@ -145,11 +147,11 @@ cyg_start( void )
pure->pure_fun1();
pure->pure_fun2();
pure->impure_fun1();
pure->inline_fun1();
-#if CYGINT_ISO_MALLOC
+#if CYGINT_ISO_MALLOC && (!defined(CYGPKG_HAL_ARM) || (__GNUC_VERSION__ >= 30300))
Derived *derived2 = new Derived(2);
Pure *pure2 = derived2;
CYG_TEST_INFO("Calling derived2 members");
derived2->pure_fun1();