RE: link error while u-boot-spl build : undefined ref to `printf` or `strcmp` etc.

Chan Kim
2021-11-22T00:43:17Z

Hi Ovidiu,

Thank you so much, with those two configs added, u-boot-spl was finally built ok
(The remaining 3 or 4 link errors are all gone together)
Thank you,

Best regards,
Chan Kim

> -----Original Message-----
> From: Ovidiu Panait <ovidiu.panait@windriver.com>
> Sent: Monday, November 22, 2021 12:30 AM
> To: Chan Kim <ckim@etri.re.kr>; U-Boot Mailing List <u-boot@lists.denx.de>
> Subject: Re: link error while u-boot-spl build : undefined ref to `printf`
> or `strcmp` etc.
>
> Hi Chan,
>
> On 11/21/21 1:45 PM, Chan Kim wrote:
> > [Please note: This e-mail is from an EXTERNAL e-mail address]
> >
> > Hello,
> >
> > When I build u-boot, I get this error at the end. (during u-boot-spl
> build).
> >
> > I've been fixing some link errors by adding config values but I can't
> > figure out what is wrong with this.
> >
> > Below is the final command for u-boot-spl build and the error messages.
> >
> > Can any expert tell me what can be wrong here?
> >
> >
> >
> > ( cd spl && aarch64-none-elf-gcc -nostdlib -nostartfiles
> > -fuse-linker-plugin -flto=28 -Wall -Wstrict-prototypes
> > -Wno-format-security -fno-builtin -ffreestanding -std=gnu11
> > -fshort-wchar -fno-strict-aliasing -fno-PIE -Os -flto=28
> > -fno-stack-protector -fno-delete-null-pointer-checks -Wno-pointer-sign
> > -Wno-stringop-truncation -Wno-zero-length-bounds -Wno-array-bounds
> > -Wno-stringop-overflow -Wno-maybe-uninitialized -fmacro-prefix-map=./=
> > -g -fstack-usage -Wno-format-nonliteral -Wno-address-of-packed-member
> > -Wno-unused-but-set-variable -Werror=date-time -Wno-packed-not-aligned
> > -ffunction-sections -fdata-sections -fno-stack-protector -D__KERNEL__ -
> D__UBOOT__ -DCONFIG_SPL_BUILD -D__ARM__
> > -mstrict-align -fno-common -ffixed-r9 -mgeneral-regs-only -fno-
> common
> > -ffixed-x18 -pipe -march=armv8-a+crc -D__LINUX_ARM_ARCH__=8 -
> Ispl/include
> > -Iinclude -I./arch/arm/include -include ./include/linux/kconfig.h
> > -nostdinc -isystem
> > /opt/arm-toolchains/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin/.
> > ./lib/ gcc/aarch64-none-elf/10.2.1/include -Wl,-T -Wl,u-boot-spl.lds
> > -Wl,--gc-sections -Wl,-Bstatic -Wl,--gc-sections
> > -Wl,--no-dynamic-linker -Wl,--build-id=none -Wl,-Ttext -Wl,0x4000000
> > arch/arm/cpu/armv8/start.o -Wl,--whole-archive
> > arch/arm/cpu/armv8/built-in.o arch/arm/cpu/built-in.o
> > arch/arm/lib/built-in.o board/etri/ab21m/built-in.o
> > common/spl/built-in.o common/init/built-in.o common/built-in.o
> > cmd/built-in.o env/built-in.o disk/built-in.o drivers/built-in.o
> > dts/built-in.o fs/built-in.o keep-syms-lto.o -L
> > /opt/arm-toolchains/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin/.
> > ./lib/
> > gcc/aarch64-none-elf/10.2.1 -lgcc -Wl,--no-whole-archive
> > -Wl,-Map,u-boot-spl.map -o u-boot-spl )
> >
> > /opt/arm-toolchains/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin/.
> > ./lib/
> > gcc/aarch64-none-elf/10.2.1/../../../../aarch64-none-elf/bin/ld:
> > /tmp/u-boot-spl.GeKfJh.ltrans0.ltrans.o: in function `alloc_simple':
> >
> > /home/ckim/U-BOOT/u-boot/spl/../common/malloc_simple.c:29: undefined
> > reference to `printf'
> >
> > /opt/arm-toolchains/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin/.
> > ./lib/
> > gcc/aarch64-none-elf/10.2.1/../../../../aarch64-none-elf/bin/ld:
> > /tmp/u-boot-spl.GeKfJh.ltrans0.ltrans.o: in function
> `device_bind_by_name':
> >
> > /home/ckim/U-BOOT/u-boot/spl/../drivers/core/lists.c:31: undefined
> > reference to `strcmp'
> >
> > /opt/arm-toolchains/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin/.
> > ./lib/
> > gcc/aarch64-none-elf/10.2.1/../../../../aarch64-none-elf/bin/ld:
> > /tmp/u-boot-spl.GeKfJh.ltrans0.ltrans.o: in function `board_init_r':
> >
> > /home/ckim/U-BOOT/u-boot/spl/../common/spl/spl.c:697: undefined
> > reference to `timer_init'
> >
> > /opt/arm-toolchains/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin/.
> > ./lib/
> > gcc/aarch64-none-elf/10.2.1/../../../../aarch64-none-elf/bin/ld:
> > /home/ckim/U-BOOT/u-boot/spl/../common/spl/spl.c:690: undefined
> > reference to `hang'
> >
> > /opt/arm-toolchains/gcc-arm-10.2-2020.11-x86_64-aarch64-none-elf/bin/.
> > ./lib/
> > gcc/aarch64-none-elf/10.2.1/../../../../aarch64-none-elf/bin/ld:
> > /home/ckim/U-BOOT/u-boot/spl/../common/spl/spl.c:633: undefined
> > reference to `printf'
> >
> > collect2: error: ld returned 1 exit status
> >
> > make[1]: *** [scripts/Makefile.spl:509: spl/u-boot-spl] Error 1
> >
> > make: *** [Makefile:1984: spl/u-boot-spl] Error 2
>
> Could you try to enable CONFIG_SPL_LIBCOMMON_SUPPORT and
> CONFIG_SPL_LIBGENERIC_SUPPORT Kconfig options?
>
>
> Ovidiu
>
> >
> >
> > Thank you.
> >
> > Chan Kim
> >