discard_locals_relocatable_test.c 1.6 KB

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