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