From mboxrd@z Thu Jan 1 00:00:00 1970 From: Albert ARIBAUD Date: Fri, 22 Oct 2010 20:58:35 +0200 Subject: [U-Boot] building jornada_config _armboot_start undeclared (first use in this function) In-Reply-To: <20101022183801.GA1038@boggieman.bredbandsbolaget.se> References: <20101022130735.GG994@boggieman> <4CC19032.8030301@free.fr> <20101022150112.GB868@boggieman> <4CC1AD29.8000702@free.fr> <20101022183801.GA1038@boggieman.bredbandsbolaget.se> Message-ID: <4CC1DEDB.1060601@free.fr> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de 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 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. 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, -- Albert.