[coreboot] Some errors by compiling romstage (I am a newbie)

Aaron Durbin adurbin at google.com
Thu Mar 2 16:01:17 CET 2017


On Thu, Mar 2, 2017 at 8:33 AM, Maxim Gusev <mail at maximgusev.com> wrote:
> Hello, Aaron!
>
> I am compiling sourses of my arch e2k.
> I have compiled bootblock with my sources. There aren't my sources in other
> stages. I have create arch directory and mainboard directory where the
> sources are located.
>
>
>
> Log:
>
> /home/maxim/coreboot/util/crossgcc/xgcc/bin/linux-ld: warning: cannot find
> entry symbol start; defaulting to 0000000100187000
> build/romstage/lib/imd_cbmem.o: In function `cbmem_add_bootmem':
> /home/maxim/coreboot/src/lib/imd_cbmem.c:287: undefined reference to
> `bootmem_add_range'
> build/romstage/lib/imd_cbmem.o: In function `cbmem_add_records_to_cbtable':
> /home/maxim/coreboot/src/lib/imd_cbmem.c:314: undefined reference to
> `lb_new_record'
> make: *** [build/cbfs/fallback/romstage.debug] Error 1
>

Does your arch's compiler support -ffuncation-sections and
-fdata-sections? As well as your linker supporting --gc-sections ? All
the architectures we support have those flags. See Makefile.inc which
provides those in CFLAGS_common and LDFLAGS_common. That support
allows us to not sprinkle #ifdef's all around in the code when the
same source file is compiled for different stages.

>
>
> -------- Original Message --------
> Subject: Re: [coreboot] Some errors by compiling romstage (I am a newbie)
> Local Time: 2 Марта 2017 г. 5:22 вечера
> UTC Time: 2 Марта 2017 г. 14:22
> From: adurbin at google.com
> To: Maxim Gusev <mail at maximgusev.com>
> coreboot at coreboot.org <coreboot at coreboot.org>
>
> On Thu, Mar 2, 2017 at 7:24 AM, Maxim Gusev via coreboot
> <coreboot at coreboot.org> wrote:
>> Hi everbody!
>>
>> I have a question. Very hope for your help.
>>
>> When I am compiling the romstage there are 2 errors by the linker:
>> Undefined refference to 'bootmem_add_range'
>> Undefined refference to 'lb_new_record' in the imd_cbmem.c file (it is
>> included in src/lib/Makefile.inc romstage).
>>
>> The definitions of these functions are in lib/bootmem.c and
>> lib/coreboot_table.c accordingly.
>> But I can't see the inclusion of these files in romstage in
>> src/Makefile.inc
>> (only in ramstage):
>> ramstage-y += bootmem.c
>> ramstage-y += coreboot_table.c
>>
>> How to solve this problem?
>> The inclusion of these files produces a number of other errors, but
>> nowhere
>> in the code no one does it? Why only I am having this error.
>
>
> What board are you building? Are you working on local patches to your
> setup only? What does the build log indicate?
>
>>
>> In General, I don't even need these stages (romstage and ramstage) - I
>> want
>> to check the performance on real hardware the work of the bootblock, but
>> the
>> toolchain requires me to compile other stages. And the error occurs even
>> not
>> in my code, but my ignorance.
>>
>> Thanks a lot!
>> Regards, Maxim
>>
>>
>>
>>
>> --
>> coreboot mailing list: coreboot at coreboot.org
>> https://www.coreboot.org/mailman/listinfo/coreboot
>
>



More information about the coreboot mailing list