Commit df84502edffd1da48588a212b402602f032ed53d
1 parent
09d81184e1
Exists in
master
and in
53 other branches
arm: generalize lib/bss.c into lib/sections.c
File arch/arm/lib/bss.c was initially defined for BSS only, but is now going to also contain definitions for other section-boundary-related symbols, so rename it for better accuracy. Also, remove useless 'used' attributes. Signed-off-by: Albert ARIBAUD <albert.u.boot@aribaud.net> Tested-by: Lubomir Popov <lpopov@mm-sol.com> Tested-by: Jeroen Hofstee <jeroen@myspectrum.nl> Reviewed-by: Benoît Thébaudeau <benoit.thebaudeau@advansee.com>
Showing 3 changed files with 40 additions and 40 deletions Side-by-side Diff
arch/arm/lib/Makefile
arch/arm/lib/bss.c
1 | -/* | |
2 | - * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net> | |
3 | - * | |
4 | - * See file CREDITS for list of people who contributed to this | |
5 | - * project. | |
6 | - * | |
7 | - * This program is free software; you can redistribute it and/or | |
8 | - * modify it under the terms of the GNU General Public License as | |
9 | - * published by the Free Software Foundation; either version 2 of | |
10 | - * the License, or (at your option) any later version. | |
11 | - * | |
12 | - * This program is distributed in the hope that it will be useful, | |
13 | - * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | - * GNU General Public License for more details. | |
16 | - * | |
17 | - * You should have received a copy of the GNU General Public License | |
18 | - * along with this program; if not, write to the Free Software | |
19 | - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
20 | - * MA 02111-1307 USA | |
21 | - */ | |
22 | - | |
23 | -/** | |
24 | - * These two symbols are declared in a C file so that the linker | |
25 | - * uses R_ARM_RELATIVE relocation, rather than the R_ARM_ABS32 one | |
26 | - * it would use if the symbols were defined in the linker file. | |
27 | - * Using only R_ARM_RELATIVE relocation ensures that references to | |
28 | - * the symbols are correct after as well as before relocation. | |
29 | - * | |
30 | - * We need a 0-byte-size type for these symbols, and the compiler | |
31 | - * does not allow defining objects of C type 'void'. Using an empty | |
32 | - * struct is allowed by the compiler, but causes gcc versions 4.4 and | |
33 | - * below to complain about aliasing. Therefore we use the next best | |
34 | - * thing: zero-sized arrays, which are both 0-byte-size and exempt from | |
35 | - * aliasing warnings. | |
36 | - */ | |
37 | - | |
38 | -char __bss_start[0] __attribute__((used, section(".__bss_start"))); | |
39 | -char __bss_end[0] __attribute__((used, section(".__bss_end"))); |
arch/arm/lib/sections.c
1 | +/* | |
2 | + * Copyright 2013 Albert ARIBAUD <albert.u.boot@aribaud.net> | |
3 | + * | |
4 | + * See file CREDITS for list of people who contributed to this | |
5 | + * project. | |
6 | + * | |
7 | + * This program is free software; you can redistribute it and/or | |
8 | + * modify it under the terms of the GNU General Public License as | |
9 | + * published by the Free Software Foundation; either version 2 of | |
10 | + * the License, or (at your option) any later version. | |
11 | + * | |
12 | + * This program is distributed in the hope that it will be useful, | |
13 | + * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
14 | + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
15 | + * GNU General Public License for more details. | |
16 | + * | |
17 | + * You should have received a copy of the GNU General Public License | |
18 | + * along with this program; if not, write to the Free Software | |
19 | + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, | |
20 | + * MA 02111-1307 USA | |
21 | + */ | |
22 | + | |
23 | +/** | |
24 | + * These two symbols are declared in a C file so that the linker | |
25 | + * uses R_ARM_RELATIVE relocation, rather than the R_ARM_ABS32 one | |
26 | + * it would use if the symbols were defined in the linker file. | |
27 | + * Using only R_ARM_RELATIVE relocation ensures that references to | |
28 | + * the symbols are correct after as well as before relocation. | |
29 | + * | |
30 | + * We need a 0-byte-size type for these symbols, and the compiler | |
31 | + * does not allow defining objects of C type 'void'. Using an empty | |
32 | + * struct is allowed by the compiler, but causes gcc versions 4.4 and | |
33 | + * below to complain about aliasing. Therefore we use the next best | |
34 | + * thing: zero-sized arrays, which are both 0-byte-size and exempt from | |
35 | + * aliasing warnings. | |
36 | + */ | |
37 | + | |
38 | +char __bss_start[0] __attribute__((section(".__bss_start"))); | |
39 | +char __bss_end[0] __attribute__((section(".__bss_end"))); |