diff options
Diffstat (limited to 'elf/tst-protected1a.c')
-rw-r--r-- | elf/tst-protected1a.c | 234 |
1 files changed, 0 insertions, 234 deletions
diff --git a/elf/tst-protected1a.c b/elf/tst-protected1a.c deleted file mode 100644 index 4267b951c4..0000000000 --- a/elf/tst-protected1a.c +++ /dev/null @@ -1,234 +0,0 @@ -/* Test the protected visibility when main is linked with moda and modb - in that order: - 1. Protected symbols, protected1, protected2 and protected3, defined - in moda, are used in moda. - 2. Protected symbol, protected3, defined in modb, are used in modb. - 3. Symbol, protected1, defined in moda, is also used in main and modb. - 4. Symbol, protected2, defined in main, is used in main. - 5. Symbol, protected3, defined in moda, is also used in main. - - Copyright (C) 2015-2017 Free Software Foundation, Inc. - This file is part of the GNU C Library. - - The GNU C Library is free software; you can redistribute it and/or - modify it under the terms of the GNU Lesser General Public - License as published by the Free Software Foundation; either - version 2.1 of the License, or (at your option) any later version. - - The GNU C Library is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - Lesser General Public License for more details. - - You should have received a copy of the GNU Lesser General Public - License along with the GNU C Library; if not, see - <http://www.gnu.org/licenses/>. */ - -/* This file must be compiled as PIE to avoid copy relocation when - accessing protected symbols defined in shared libaries since copy - relocation doesn't work with protected symbols and linker in - binutils 2.26 enforces this rule. */ - -#include <stdio.h> -#include <stdlib.h> -#include <string.h> - -#include "tst-protected1mod.h" - -/* Prototype for our test function. */ -extern int do_test (void); - -int protected2 = -1; - -/* This defines the `main' function and some more. */ -#include <support/test-driver.c> - -int -do_test (void) -{ - int res = 0; - - /* Check if we get the same address for the protected data symbol. */ - if (&protected1 != protected1a_p ()) - { - puts ("`protected1' in main and moda doesn't have same address"); - res = 1; - } - if (&protected1 != protected1b_p ()) - { - puts ("`protected1' in main and modb doesn't have same address"); - res = 1; - } - - /* Check if we get the right value for the protected data symbol. */ - if (protected1 != 3) - { - puts ("`protected1' in main and moda doesn't have same value"); - res = 1; - } - - /* Check if we get the right value for data defined in executable. */ - if (protected2 != -1) - { - puts ("`protected2' in main has the wrong value"); - res = 1; - } - - /* Check `protected1' in moda. */ - if (!check_protected1 ()) - { - puts ("`protected1' in moda has the wrong value"); - res = 1; - } - - /* Check `protected2' in moda. */ - if (!check_protected2 ()) - { - puts ("`protected2' in moda has the wrong value"); - res = 1; - } - - /* Check if we get the same address for the protected data symbol. */ - if (&protected3 != protected3a_p ()) - { - puts ("`protected3' in main and moda doesn't have same address"); - res = 1; - } - if (&protected3 == protected3b_p ()) - { - puts ("`protected3' in main and modb has same address"); - res = 1; - } - - /* Check if we get the right value for the protected data symbol. */ - if (protected3 != 5) - { - puts ("`protected3' in main and moda doesn't have same value"); - res = 1; - } - - /* Check `protected3' in moda. */ - if (!check_protected3a ()) - { - puts ("`protected3' in moda has the wrong value"); - res = 1; - } - - /* Check `protected3' in modb. */ - if (!check_protected3b ()) - { - puts ("`protected3' in modb has the wrong value"); - res = 1; - } - - /* Set `protected2' in moda to 30. */ - set_protected2 (300); - - /* Check `protected2' in moda. */ - if (!check_protected2 ()) - { - puts ("`protected2' in moda has the wrong value"); - res = 1; - } - - /* Set `protected1' in moda to 30. */ - set_protected1a (30); - - /* Check `protected1' in moda. */ - if (!check_protected1 ()) - { - puts ("`protected1' in moda has the wrong value"); - res = 1; - } - - /* Check if we get the updated value for the protected data symbol. */ - if (protected1 != 30) - { - puts ("`protected1' in main doesn't have the updated value"); - res = 1; - } - - protected2 = -300; - - /* Check `protected2' in moda. */ - if (!check_protected2 ()) - { - puts ("`protected2' in moda has the wrong value"); - res = 1; - } - - /* Check if data defined in executable is changed. */ - if (protected2 != -300) - { - puts ("`protected2' in main is changed"); - res = 1; - } - - /* Set `protected1' in modb to 40. */ - set_protected1b (40); - set_expected_protected1 (40); - - /* Check `protected1' in moda. */ - if (!check_protected1 ()) - { - puts ("`protected1' in moda has the wrong value"); - res = 1; - } - - /* Check if we get the updated value for the protected data symbol. */ - if (protected1 != 40) - { - puts ("`protected1' in main doesn't have the updated value"); - res = 1; - } - - /* Set `protected3' in moda to 80. */ - set_protected3a (80); - - /* Check `protected3' in moda. */ - if (!check_protected3a ()) - { - puts ("`protected3' in moda has the wrong value"); - res = 1; - } - - /* Check if we get the updated value for the protected data symbol. */ - if (protected3 != 80) - { - puts ("`protected3' in main doesn't have the updated value"); - res = 1; - } - - /* Check `protected3' in modb. */ - if (!check_protected3b ()) - { - puts ("`protected3' in modb has the wrong value"); - res = 1; - } - - /* Set `protected3' in modb to 100. */ - set_protected3b (100); - - /* Check `protected3' in moda. */ - if (!check_protected3a ()) - { - puts ("`protected3' in moda has the wrong value"); - res = 1; - } - - /* Check if we get the updated value for the protected data symbol. */ - if (protected3 != 80) - { - puts ("`protected3' in main doesn't have the updated value"); - res = 1; - } - - /* Check `protected3' in modb. */ - if (!check_protected3b ()) - { - puts ("`protected3' in modb has the wrong value"); - res = 1; - } - - return res; -} |