mips32 still supported?
Adhemerval Zanella Netto
adhemerval.zanella@linaro.org
Tue Jun 11 13:07:45 GMT 2024
On 11/06/24 02:44, Waldemar Brodkorb wrote:
> Hi,
>
> is mips32 (big endian or little endian) still supported by glibc?
>
> I am seeing following build error with glibc 2.39 (gcc 13.3.0, binutils 2.42):
>
> /home/wbx/openadk/toolchain_qemu-mips_glibc_mips32r6_hard/usr/bin/mips-openadk-linux-gnu-gcc -mabi=32 -shared -static-libgcc -Wl,-dynamic-linker=/lib/ld-linux-mipsn8.so.1 -Wl,-z,defs -B/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/csu/ -Wl,-z,relro -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/math -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/elf -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/dlfcn -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/nss -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/nis -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/rt -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/resolv -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/mathvec -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/support -L/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/nptl -Wl,-rpath-link=/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/math:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/elf:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/dlfcn:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/nss:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/nis:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/rt:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/resolv:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/mathvec:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/support:/home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/nptl -o /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/elf/sotruss-lib.so /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/csu/abi-note.o -Wl,--as-needed /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/elf/sotruss-lib.os -Wl,--no-as-needed -Wl,--start-group /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/libc.so /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/libc_nonshared.a -Wl,--as-needed /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/elf/ld.so -Wl,--no-as-needed -Wl,--end-group
> /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/csu/crti.o: in function `_init':
> (.init+0x0): relocation R_MIPS_HI16 against `__gnu_local_gp' cannot be used when making a shared object; recompile with -fPIC
> /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/csu/crti.o: in function `_fini':
> (.fini+0x0): relocation R_MIPS_HI16 against `__gnu_local_gp' cannot be used when making a shared object; recompile with -fPIC
> collect2: error: ld returned 1 exit status
> gmake[8]: *** [Makefile:247: /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39-final/elf/sotruss-lib.so] Error 1
> gmake[7]: *** [Makefile:484: elf/subdir_lib] Error 2
> gmake[6]: *** [Makefile:9: all] Error 2
> gmake[5]: *** [Makefile:71: /home/wbx/openadk/toolchain_build_qemu-mips_glibc_mips32r6_hard/w-glibc-2.39-1/glibc-2.39/.compiled] Error 2
> gmake[4]: *** [Makefile:106: glibc-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
>
> No matter if I targeting mips32r1, mips32r2 or mips32r6.
>
> For a full build log targeting mips32r1 download this file here:
> https://debug.openadk.org/glibc-mips32-make.log
>
I have not see any issues building with gcc 14.1.1 / binutils 2.42
for mips with -mips1/-mips2/-mips32r6:
mips-linux-gnu-mips1$ ./elf/ld.so ./libc.so
GNU C Library (GNU libc) development release version 2.39.9000.
[...]
Compiled by GNU CC version 14.1.1 20240507 [releases/gcc-11 revision 624c3bb9ff7:d12f6ad7ecf:09910b6753427eeb3f6dded4fae3578851da7422].
libc ABIs: MIPS_PLT UNIQUE MIPS_O32_FP64 ABSOLUTE MIPS_XHASH
[...]
Nor Joseph's automated bots that constantly checks all supported ABIs [1]
has reported any issue for mips.
As a side note, you are using some outdated configure options like
--enable-stackguard-randomization (removed on 2.34 [2]) and --disable-nls
(not really a glibc option),
[1] https://sourceware.org/pipermail/libc-testresults/2024q2/thread.html
[2] https://sourceware.org/bugzilla/show_bug.cgi?id=27872
More information about the Libc-help
mailing list