[U-Boot] building jornada_config _armboot_start undeclared (first use in this function)

Kristoffer Ericson kristoffer.ericson at gmail.com
Fri Oct 22 20:38:01 CEST 2010


On Fri, Oct 22, 2010 at 05:26:33PM +0200, Albert ARIBAUD wrote:
> Le 22/10/2010 17:01, Kristoffer Ericson a écrit :
> >On Fri, Oct 22, 2010 at 03:22:58PM +0200, Albert ARIBAUD wrote:
> >>Le 22/10/2010 15:07, Kristoffer Ericson a écrit :
> >>>Greetings,
> >>>
> >>>Getting this when trying to build (using same toolchain which has worked before).
> >>>Someone else must have hit this, so before I start bugtracking.
> >>>
> >>>Best wishes
> >>>Kristoffer Ericson
> >>>
> >>>arm-linux-ar crv libsa1100.a cpu.o timer.o
> >>>r - cpu.o
> >>>r - timer.o
> >>>make[1]: Leaving directory `/home/kristoffer/work/projects/u-boot.git/arch/arm/cpu/sa1100'
> >>>make -C arch/arm/lib/
> >>>make[1]: Entering directory `/home/kristoffer/work/projects/u-boot.git/arch/arm/lib'
> >>>arm-linux-gcc  -g  -Os   -fno-common -ffixed-r8 -msoft-float -malignment-traps -D__KERNEL__ -DCONFIG_SYS_TEXT_BASE=0xC1F00000 -I/home/kristoffer/work/projects/u-boot.git/include -fno-builtin -ffreestanding -nostdinc -isystem /opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/lib/gcc/arm-softfloat-linux-gnu/3.4.5/include -pipe  -DCONFIG_SYS_ARM_WITHOUT_RELOC -DCONFIG_ARM -D__ARM__ -marm   -mapcs-32 -mno-thumb-interwork  -march=armv4 -mtune=strongarm1100 -Wall -Wstrict-prototypes    \
> >>>		-o board.o board.c -c
> >>>board.c: In function `start_armboot':
> >>>board.c:293: error: `_armboot_start' undeclared (first use in this function)
> >>>board.c:293: error: (Each undeclared identifier is reported only once
> >>>board.c:293: error: for each function it appears in.)
> >>>board.c:303: error: `_bss_start' undeclared (first use in this function)
> >>>make[1]: *** [board.o] Fel 1
> >>>make[1]: Leaving directory `/home/kristoffer/work/projects/u-boot.git/arch/arm/lib'
> >>>make: *** [arch/arm/lib/libarm.a] Fel 2
> >>>[kristoffer at boggieman u-boot.git]$
> >>
> >>Which branch do you build? If this has ELF relocations (elf_reloc of
> >>mainline u-boot repo), the board you're compiling probably misses
> >>support for ELF relocations.
> >
> >Forgot that im setting without relocation in the config. Its really weird,
> >both those (_armboot_start/_bss_start) are declared within arch/cpu/sa1100/start.S
> >but for some reason doesnt get grabbed/builtin and therefore believed to be undeclared.
> 
> For board.c to see them as declared, you have to have them in a
> header file, namely arch/arm/include/asm/u-boot-arm.h, regardless of
> whether they are defined in start.S. What does your u-boot-arm.h say
> about them?

They are not included in arch/arm/include/asm/u-boot-arm.h.
However _bss_start_ofs / _armboot_start_ofs are, not sure if its
a misspell.

Adding _bss_start + _armboot_start into u-boot-arm.h makes it
compile nicely :) Big thanks.
Still cant understand why it showed up now and 
not in my e79f48393dd919079b34f37957c933f8e75c164d revision(from 13th of october).
And also why people with arm boards arent hitting this all the time, or is everyone running with relocation already?

Anyhow, the quick fix in case someone needs it:
diff --git a/arch/arm/include/asm/u-boot-arm.h b/arch/arm/include/asm/u-boot-arm.h
index 4ac4f61..b4b7589 100644
--- a/arch/arm/include/asm/u-boot-arm.h
+++ b/arch/arm/include/asm/u-boot-arm.h
@@ -32,10 +32,12 @@
 /* for the following variables, see start.S */
 extern ulong _bss_start_ofs;   /* BSS start relative to _start */
 extern ulong _bss_end_ofs;             /* BSS end relative to _start */
+extern ulong _bss_start;
 extern ulong IRQ_STACK_START;  /* top of IRQ stack */
 extern ulong FIQ_STACK_START;  /* top of FIQ stack */
 #if defined(CONFIG_SYS_ARM_WITHOUT_RELOC)
 extern ulong _armboot_start_ofs;       /* code start */
+extern ulong _armboot_start;
 #else
 extern ulong _TEXT_BASE;       /* code start */
 extern ulong _datarel_start_ofs;

> 
> Amicalement,
> -- 
> Albert.


More information about the U-Boot mailing list