Hi Max,
I am trying your patch series in OpenADK, but it fails with following error: /home/wbx/openadk/toolchain_qemu-xtensa_uclibc-ng_de212_fdpic_nommu/usr/bin/xtensa-openadk-linux-uclibc-gcc -c ldso/ldso/ldso.c -o ldso/ldso/ldso.oS -Wall -Wstrict-prototypes -Wstrict-aliasing -Wno-nonnull-compare -funsigned-char -fno-builtin -fcommon -fno-asm -fmerge-all-constants -std=gnu99 -mfdpic -fno-stack-protector -nostdinc -I./include -I./include -include libc-symbols.h -I./libc/sysdeps/linux/xtensa -I./libc/sysdeps/linux/xtensa -I./libc/sysdeps/linux -I./ldso/ldso/xtensa -I./ldso/include -I. -Os -fstrict-aliasing -fwrapv -fno-ident -mlongcalls -mauto-litpools -mabi=call0 -Os -pipe -fomit-frame-pointer -D__USE_STDIO_FUTEXES__ -D__UCLIBC_HAVE_STATX__ -DHAVE_FORCED_UNWIND -D_LIBC_REENTRANT -I./libpthread/nptl -I./libpthread/nptl -I./libpthread/nptl/sysdeps/unix/sysv/linux/xtensa -I./libpthread/nptl/sysdeps/xtensa -I./libpthread/nptl/sysdeps/xtensa -I./libpthread/nptl/sysdeps/unix/sysv/linux -I./libpthread/nptl/sysdeps/unix/sysv/linux -I./libpthread/nptl/sysdeps/pthread -I./libpthread/nptl/sysdeps/pthread/bits -I./libpthread/nptl/sysdeps/generic -I./libc/sysdeps/linux/common -isystem /home/wbx/openadk/toolchain_qemu-xtensa_uclibc-ng_de212_fdpic_nommu/usr/lib/gcc/xtensa-openadk-linux-uclibc/14.0.1/include-fixed -isystem /home/wbx/openadk/toolchain_qemu-xtensa_uclibc-ng_de212_fdpic_nommu/usr/lib/gcc/xtensa-openadk-linux-uclibc/14.0.1/include -I/home/wbx/openadk/target_qemu-xtensa_uclibc-ng_de212_fdpic_nommu/usr/include/ -DNDEBUG -DNOT_IN_libc -DIS_IN_rtld -fno-stack-protector -fno-omit-frame-pointer -I./ldso/ldso/xtensa -I./ldso/include -I./ldso/ldso -DUCLIBC_RUNTIME_PREFIX="/" -DUCLIBC_LDSO="ld-uClibc.so.1" -DIN_LIB=rtld -mfdpic -DSHARED -DLDSO_ELFINTERP="xtensa/elfinterp.c" -DLDSO_MULTILIB_DIR="lib/" -MT ldso/ldso/ldso.oS -MD -MP -MF ldso/ldso/.ldso.oS.dep In file included from ./include/bits/waitstatus.h:72, from ./include/stdlib.h:44, from ./ldso/include/ldso.h:33, from ldso/ldso/ldso.c:32: ./ldso/include/dl-syscall.h: In function '_dl_pread': ./ldso/include/dl-syscall.h:237:76: warning: right shift count >= width of type [-Wshift-count-overflow] 237 | return __syscall_pread(fd, buf, count, 0, __LONG_LONG_PAIR((offset >> 32), (offset & 0xffffffff))); | ^~ ./include/endian.h:52:39: note: in definition of macro '__LONG_LONG_PAIR' 52 | # define __LONG_LONG_PAIR(HI, LO) LO, HI | ^~ In file included from ldso/ldso/ldso.c:87: ldso/ldso/dl-startup.c: In function '_dl_start': ldso/ldso/dl-startup.c:128:20: warning: variable 'got' set but not used [-Wunused-but-set-variable] 128 | ElfW(Addr) got; | ^~~ ldso/ldso/dl-tls.c: Assembler messages: ldso/ldso/dl-tls.c:197: Error: invalid register 'threadptr' for 'rur' instruction ldso/ldso/dl-tls.c:203: Error: invalid register 'threadptr' for 'rur' instruction ldso/ldso/dl-tls.c:694: Error: invalid register 'threadptr' for 'rur' instruction ldso/ldso/dl-tls.c:811: Error: invalid register 'threadptr' for 'rur' instruction ldso/ldso/dl-tls.c:160: Error: invalid register 'threadptr' for 'rur' instruction ldso/ldso/dl-tls.c:1045: Error: invalid register 'threadptr' for 'wur' instruction ldso/ldso/dl-tls.c:852: Error: invalid register 'threadptr' for 'rur' instruction ldso/ldso/dl-tls.c:859: Error: invalid register 'threadptr' for 'rur' instruction ldso/ldso/ldso.c:1360: Error: invalid register 'threadptr' for 'wur' instruction gmake[6]: *** [Makerules:374: ldso/ldso/ldso.oS] Error 1 gmake[5]: *** [Makefile:353: /home/wbx/openadk/toolchain_build_qemu-xtensa_uclibc-ng_de212_fdpic_nommu/w-uClibc-ng-git-1/uClibc-ng-git/.compiled] Error 2 gmake[4]: *** [Makefile:106: uclibc-ng-compile] Error 2 gmake[3]: *** [mk/build.mk:227: toolchain/final] Error 2 gmake[2]: *** [/home/wbx/openadk/mk/build.mk:176: world] Error 2
I am using an very old overlay for de212, which defaults to windowed ABI, but I added -mabi=call0 to CFLAGS. Are you testing with another CPU? I always use de212 for noMMU configurations.
What I am doing wrong?
best regards Waldemar