Home | History | Annotate | Download | only in testsuite
      1 /* discard_locals_relocatable_test.c -- test --discard-locals/--discard-all -r
      2 
      3    Copyright (C) 2010-2016 Free Software Foundation, Inc.
      4    Viktor Kutuzov <vkutuzov (at) accesssoftek.com>.
      5 
      6    This file is part of gold.
      7 
      8    This program is free software; you can redistribute it and/or modify
      9    it under the terms of the GNU General Public License as published by
     10    the Free Software Foundation; either version 3 of the License, or
     11    (at your option) any later version.
     12 
     13    This program is distributed in the hope that it will be useful,
     14    but WITHOUT ANY WARRANTY; without even the implied warranty of
     15    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     16    GNU General Public License for more details.
     17 
     18    You should have received a copy of the GNU General Public License
     19    along with this program; if not, write to the Free Software
     20    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
     21    MA 02110-1301, USA.
     22 
     23    This is a test of a common symbol in the main program and a
     24    versioned symbol in a shared library.  The common symbol in the
     25    main program should override the shared library symbol.  */
     26 
     27 /* Note: use GCC -fPIC option to compile this test.  */
     28 
     29 /* Local symbol format for generic ELF target.
     30    Use GCC -Wa,-L option to preserve this local symbol
     31    in the output object file. */
     32 asm (".Lshould_be_discarded:");
     33 
     34 #ifdef __powerpc__
     35 /* Test wants to keep one local.  Satisfy it.  */
     36 #ifdef __powerpc64__
     37 asm (".reloc 0,R_PPC64_NONE,.LC0");
     38 #else
     39 asm (".reloc 0,R_PPC_NONE,.LC0");
     40 #endif
     41 #endif
     42 
     43 extern void print_func (const char* s);
     44 
     45 extern int func (void);
     46 
     47 int
     48 func (void)
     49 {
     50   print_func ("local string");
     51   return 0;
     52 }
     53