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

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@boggieman u-boot.git]$

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@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.
Amicalement,

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@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.
master branch, and this got applied recently (1-2 weeks)? Ill look into it, thanks!
Amicalement,
Albert. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

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@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.
Amicalement,
Albert. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot

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@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?
Amicalement,

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@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.

Le 22/10/2010 20:38, Kristoffer Ericson a écrit :
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@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.
Not exactly misspelled... I renamed them myself in the ELF relocation patch -- which means your arch/arm/include/asm/u-boot-arm.h is that of the elf_reloc branch -- which means your board.c is not up to date.
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?
Everyone should be. Now is a transition period where ARM board owners must support (ELF) relocation or else the boards are going to be removed, IIUC.
Anyhow, the quick fix in case someone needs it:
This is not a quick fix; this is a workaround to a weird source tree issue.
Either you should build on the master branch (and then your .h file should already have _bss_start and _armboot_start or you build on the elf_reloc branch and should not refer to _bss_start and _armboot_start but to their _ofs counterparts throughout the code; you can look up how this is done on arm926ejs.
Amicalement,

Dear Albert ARIBAUD,
In message 4CC1DEDB.1060601@free.fr you wrote:
Either you should build on the master branch (and then your .h file should already have _bss_start and _armboot_start or you build on the elf_reloc branch and should not refer to _bss_start and _armboot_start but to their _ofs counterparts throughout the code; you can look up how this is done on arm926ejs.
The elf_reloc has been merged into the master branch a couple of days ago. As such, it is only of historic interest.
All work should be based on the current master branch.
Best regards,
Wolfgang Denk

Le 22/10/2010 22:47, Wolfgang Denk a écrit :
The elf_reloc has been merged into the master branch a couple of days ago. As such, it is only of historic interest.
Sorry. I've obviously missed it; I've been rather busy this week. :/
All work should be based on the current master branch.
Then there is no choice but to add full relocation support to the jornada board; reintroducing the _armboot_start and _bss_start symbols will only make things worse.
Best regards,
Wolfgang Denk
Amicalement,

On Fri, Oct 22, 2010 at 11:51:30PM +0200, Albert ARIBAUD wrote:
Le 22/10/2010 22:47, Wolfgang Denk a écrit :
The elf_reloc has been merged into the master branch a couple of days ago. As such, it is only of historic interest.
Sorry. I've obviously missed it; I've been rather busy this week. :/
All work should be based on the current master branch.
Then there is no choice but to add full relocation support to the jornada board; reintroducing the _armboot_start and _bss_start symbols will only make things worse.
Roger then I know my approach, thanks.
Best regards,
Wolfgang Denk
Amicalement,
Albert.
participants (3)
-
Albert ARIBAUD
-
Kristoffer Ericson
-
Wolfgang Denk