summaryrefslogtreecommitdiffstats
path: root/newlib
diff options
context:
space:
mode:
Diffstat (limited to 'newlib')
-rw-r--r--newlib/ChangeLog5
-rw-r--r--newlib/libc/machine/cris/libcdtor.c9
2 files changed, 11 insertions, 3 deletions
diff --git a/newlib/ChangeLog b/newlib/ChangeLog
index fc79c5867..719990c2d 100644
--- a/newlib/ChangeLog
+++ b/newlib/ChangeLog
@@ -1,3 +1,8 @@
+2005-07-26 Hans-Peter Nilsson <hp@bitrange.com>
+
+ * libc/machine/cris/libcdtor.c (defaultors): Mark artificially as
+ used.
+
2005-07-20 Bob Wilson <bob.wilson@acm.org>
Darin Petkov <darin@tensilica.com>
diff --git a/newlib/libc/machine/cris/libcdtor.c b/newlib/libc/machine/cris/libcdtor.c
index d17cdeb37..327347782 100644
--- a/newlib/libc/machine/cris/libcdtor.c
+++ b/newlib/libc/machine/cris/libcdtor.c
@@ -45,10 +45,13 @@ __asm__
extern vfnp * const _Ctors asm(".$global.lib.ctors");
extern vfnp * const _Dtors asm(".$global.lib.dtors");
-/* We better provide weak empty ctor and dtor lists, since they are not
- created if the main program does not have ctor/dtors. */
+/* We better provide weak empty ctor and dtor lists, since they are
+ not created if the main program does not have ctor/dtors. Because
+ it's otherwise not used, GCC trunk "Mon Jul 25 22:33:14 UTC 2005"
+ thinks it can remove defaultors, so we need to artificially mark it
+ as used. FIXME: Perhaps a GCC bug. */
-static vfnp const defaultors[] = {0, 0};
+static vfnp const defaultors[] __attribute__ ((__used__)) = {0, 0};
extern vfnp * __CTOR_LIST__ __attribute__ ((weak, alias ("defaultors")));
extern vfnp * __DTOR_LIST__ __attribute__ ((weak, alias ("defaultors")));