Commit df84502edffd1da48588a212b402602f032ed53d

Authored by Albert ARIBAUD
1 parent 09d81184e1

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
... ... @@ -43,7 +43,7 @@
43 43 ifndef CONFIG_SYS_GENERIC_BOARD
44 44 COBJS-y += board.o
45 45 endif
46   -COBJS-y += bss.o
  46 +COBJS-y += sections.o
47 47  
48 48 COBJS-y += bootm.o
49 49 COBJS-$(CONFIG_OF_LIBFDT) += bootm-fdt.o
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")));