From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 22346 invoked by alias); 18 Apr 2002 13:23:41 -0000 Mailing-List: contact gdb-patches-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sources.redhat.com Received: (qmail 22220 invoked from network); 18 Apr 2002 13:23:22 -0000 Received: from unknown (HELO cygnus.com) (205.180.83.203) by sources.redhat.com with SMTP; 18 Apr 2002 13:23:22 -0000 Received: from romulus.sfbay.redhat.com (remus.sfbay.redhat.com [172.16.27.252]) by runyon.cygnus.com (8.8.7-cygnus/8.8.7) with ESMTP id GAA01011 for ; Thu, 18 Apr 2002 06:22:53 -0700 (PDT) Received: (from kev@localhost) by romulus.sfbay.redhat.com (8.11.6/8.11.6) id g3IDMiU06878 for gdb-patches@sources.redhat.com; Thu, 18 Apr 2002 06:22:44 -0700 Date: Thu, 18 Apr 2002 06:23:00 -0000 From: Kevin Buettner Message-Id: <1020418132243.ZM6877@localhost.localdomain> To: gdb-patches@sources.redhat.com Subject: [PATCH] cvexpr.c: Don't let linker delete unused globals MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-SW-Source: 2002-04/txt/msg00586.txt.bz2 On AIX, I was seeing lots of failures in gdb.base/code-expr.exp and gdb.base/cvexpr.exp due to the fact that the linker deletes unused symbols. The patch below fixes these failures. Committed as obvious. * gdb.base/cvexpr.c (use): New function. (main): Invoke use() on all global variables to prevent some linkers from deleting these otherwise unused symbols. Index: cvexpr.c =================================================================== RCS file: /cvs/src/src/gdb/testsuite/gdb.base/cvexpr.c,v retrieving revision 1.1 diff -u -p -r1.1 cvexpr.c --- cvexpr.c 15 Nov 2001 02:16:59 -0000 1.1 +++ cvexpr.c 18 Apr 2002 12:59:53 -0000 @@ -273,8 +273,162 @@ unsigned long long (*v_unsigned_long_lon float (*v_float_func) (int, int*); double (*v_double_func) (int, int*); - +void use (void *p) +{ +} int main () { + use (&v_char); + use (&v_signed_char); + use (&v_unsigned_char); + + use (&v_short); + use (&v_signed_short); + use (&v_unsigned_short); + + use (&v_int); + use (&v_signed_int); + use (&v_unsigned_int); + + use (&v_long); + use (&v_signed_long); + use (&v_unsigned_long); + + use (&v_long_long); + use (&v_signed_long_long); + use (&v_unsigned_long_long); + + use (&v_float); + use (&v_double); + + use (v_char_array); + use (v_signed_char_array); + use (v_unsigned_char_array); + + use (v_short_array); + use (v_signed_short_array); + use (v_unsigned_short_array); + + use (v_int_array); + use (v_signed_int_array); + use (v_unsigned_int_array); + + use (v_long_array); + use (v_signed_long_array); + use (v_unsigned_long_array); + + use (v_float_array); + use (v_double_array); + + use (v_char_pointer); + use (v_signed_char_pointer); + use (v_unsigned_char_pointer); + + use (v_short_pointer); + use (v_signed_short_pointer); + use (v_unsigned_short_pointer); + + use (v_int_pointer); + use (v_signed_int_pointer); + use (v_unsigned_int_pointer); + + use (v_long_pointer); + use (v_signed_long_pointer); + use (v_unsigned_long_pointer); + + use (v_float_pointer); + use (v_double_pointer); + + use (v_char_pointer_pointer); + use (v_signed_char_pointer_pointer); + use (v_unsigned_char_pointer_pointer); + + use (v_short_pointer_pointer); + use (v_signed_short_pointer_pointer); + use (v_unsigned_short_pointer_pointer); + + use (v_int_pointer_pointer); + use (v_signed_int_pointer_pointer); + use (v_unsigned_int_pointer_pointer); + + use (v_long_pointer_pointer); + use (v_signed_long_pointer_pointer); + use (v_unsigned_long_pointer_pointer); + + use (v_float_pointer_pointer); + use (v_double_pointer_pointer); + + use (v_char_array_pointer); + use (v_signed_char_array_pointer); + use (v_unsigned_char_array_pointer); + + use (v_short_array_pointer); + use (v_signed_short_array_pointer); + use (v_unsigned_short_array_pointer); + + use (v_int_array_pointer); + use (v_signed_int_array_pointer); + use (v_unsigned_int_array_pointer); + + use (v_long_array_pointer); + use (v_signed_long_array_pointer); + use (v_unsigned_long_array_pointer); + + use (v_float_array_pointer); + use (v_double_array_pointer); + + use (v_char_pointer_array); + use (v_signed_char_pointer_array); + use (v_unsigned_char_pointer_array); + + use (v_short_pointer_array); + use (v_signed_short_pointer_array); + use (v_unsigned_short_pointer_array); + + use (v_int_pointer_array); + use (v_signed_int_pointer_array); + use (v_unsigned_int_pointer_array); + + use (v_long_pointer_array); + use (v_signed_long_pointer_array); + use (v_unsigned_long_pointer_array); + + use (v_float_pointer_array); + use (v_double_pointer_array); + + use (&v_struct1); + use (&v_struct2); + use (&v_struct3); + + use (&v_union); + use (&v_union2); + use (&v_union3); + + use (&v_boolean); + use (&v_boolean2); + use (&v_misordered); + + use (v_char_func); + use (v_signed_char_func); + use (v_unsigned_char_func); + + use (v_short_func); + use (v_signed_short_func); + use (v_unsigned_short_func); + + use (v_int_func); + use (v_signed_int_func); + use (v_unsigned_int_func); + + use (v_long_func); + use (v_signed_long_func); + use (v_unsigned_long_func); + + use (v_long_long_func); + use (v_signed_long_long_func); + use (v_unsigned_long_long_func); + + use (v_float_func); + use (v_double_func); }