[Clfs-support] [clfs-embedded] Could not compile dropbear 2022.83 on i486-linux-musl
Michele Bucca
michele.bucca at gmail.com
Sat Mar 23 18:33:12 PDT 2024
Hello there.
Recently I'm trying to update the clfs-embedded book by using up to
date packages. (https://michele13.github.io/clfs-embedded/x86/)
Everything has worked so far until I've tried to compile dropbear
2022.83.
when I run the command
make MULTI=1 \
PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"
I get the following error:
i486-linux-musl-gcc --sysroot=/mnt/clfs/targetfs -Os -Wl,-z,now
-Wl,-z,relro -Wl,-pie -o dropbearmulti dbmulti.o atomicio.o bignum.o
buffer.o chachapoly.o circbuffer.o cli-agentfwd.o cli-auth.o
cli-authinteract.o cli-authpasswd.o cli-authpubkey.o cli-channel.o
cli-chansession.o cli-kex.o cli-main.o cli-runopts.o cli-session.o
cli-tcpfwd.o common-algo.o common-channel.o common-chansession.o
common-kex.o common-runopts.o common-session.o compat.o crypto_desc.o
curve25519.o dbhelpers.o dbmalloc.o dbrandom.o dbutil.o dh_groups.o
dropbearconvert.o dropbearkey.o dss.o ecc.o ecdsa.o ed25519.o
fake-rfc2553.o gcm.o gendss.o gened25519.o genrsa.o gensignkey.o
keyimport.o list.o listener.o loginrec.o ltc_prng.o netio.o packet.o
process-packet.o progressmeter.o queue.o rsa.o scp.o scpmisc.o
signkey.o signkey_ossh.o sk-ecdsa.o sk-ed25519.o sshpty.o
svr-agentfwd.o svr-auth.o svr-authpam.o svr-authpasswd.o
svr-authpubkey.o svr-authpubkeyoptions.o svr-chansession.o svr-kex.o
svr-main.o svr-runopts.o svr-service.o svr-session.o svr-tcpfwd.o
svr-x11fwd.o tcp-accept.o termcodes.o libtomcrypt/libtomcrypt.a
libtommath/libtommath.a -lz -lcrypt
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/../../../../i486-linux-musl/bin/ld:
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/crtbegin.o:
warning: relocation in read-only section `.text'
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/../../../../i486-linux-musl/bin/ld:
buffer.o: in function `buf_putmpint':
buffer.c:(.text+0x723): undefined reference to `__stack_chk_fail_local'
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/../../../../i486-linux-musl/bin/ld:
chachapoly.o: in function `dropbear_chachapoly_crypt':
chachapoly.c:(.text+0x1e2): undefined reference to `__stack_chk_fail_local'
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/../../../../i486-linux-musl/bin/ld:
chachapoly.o: in function `dropbear_chachapoly_getlength':
chachapoly.c:(.text+0x2de): undefined reference to `__stack_chk_fail_local'
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/../../../../i486-linux-musl/bin/ld:
cli-agentfwd.o: in function `cli_load_agent_keys':
cli-agentfwd.c:(.text+0x3a4): undefined reference to `__stack_chk_fail_local'
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/../../../../i486-linux-musl/bin/ld:
cli-auth.o: in function `recv_msg_userauth_banner':
cli-auth.c:(.text+0x168): undefined reference to `__stack_chk_fail_local'
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/../../../../i486-linux-musl/bin/ld:
cli-auth.o:cli-auth.c:(.text+0x391): more undefined references to
`__stack_chk_fail_local' follow
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/../../../../i486-linux-musl/bin/ld:
dropbearmulti: hidden symbol `__stack_chk_fail_local' isn't defined
/mnt/clfs/cross-tools/lib/gcc/i486-linux-musl/13.2.0/../../../../i486-linux-musl/bin/ld:
final link failed: bad value
collect2: error: ld returned 1 exit status
make: *** [Makefile:224: dropbearmulti] Error 1
If I build the old version (2013.60) everything works.
I've followed the book's instructions without chainging nothing. Do
you know what might be the cause? I've also built the latest version
of dropbear using another toolchain I built using this script
https://github.com/michele13/linux-tools/blob/master/toolchains/toolchain-v2/x86_64-cross-linux-musl.sh
and I don't get any problems. What do you think it's wrong with my
clfs toolchain?
I'e also compiled a test program found here
(https://stackoverflow.com/questions/64679192/undefined-reference-to-stack-chk-fail-local)
but I get the same error:
int main()
{
__stack_chk_fail_local();
return 0;
}
gcc -o exec x.c -Wl,-Map,x.map
Cheers
Michele Bucca
More information about the Clfs-support
mailing list