(root)/
binutils-2.41/
gold/
testsuite/
discard_locals_relocatable_test.c
       1  /* discard_locals_relocatable_test.c -- test --discard-locals/--discard-all -r
       2  
       3     Copyright (C) 2010-2023 Free Software Foundation, Inc.
       4     Viktor Kutuzov <vkutuzov@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  }