mirror of
https://sourceware.org/git/glibc.git
synced 2024-12-24 11:41:07 +00:00
0bd956720c
* elf/elf.h (PT_MIPS_ABIFLAGS): Define. (Elf_MIPS_ABIFlags_v0): New structure. (EF_MIPS_FP64): Define. (MIPS_AFL_REG_NONE, MIPS_AFL_REG_32, MIPS_AFL_REG_64): Likewise. (MIPS_AFL_REG_128, MIPS_AFL_ASE_DSP, MIPS_AFL_ASE_DSP64): Likewise. (MIPS_AFL_ASE_DSPR2, MIPS_AFL_ASE_EVA, MIPS_AFL_ASE_MCU): Likewise. (MIPS_AFL_ASE_MDMX, MIPS_AFL_ASE_MIPS3D, MIPS_AFL_ASE_MT): Likewise. (MIPS_AFL_ASE_SMARTMIPS, MIPS_AFL_ASE_VIRT): Likewise. (MIPS_AFL_ASE_VIRT64, MIPS_AFL_ASE_MSA, MIPS_AFL_ASE_MSA64): Likewise. (MIPS_AFL_ASE_MIPS16, MIPS_AFL_ASE_MICROMIPS): Likewise. (MIPS_AFL_ASE_XPA, MIPS_AFL_EXT_XLR, MIPS_AFL_EXT_OCTEON2): Likewise. (MIPS_AFL_EXT_OCTEONP, MIPS_AFL_EXT_LOONGSON_3A): Likewise. (MIPS_AFL_EXT_OCTEON, MIPS_AFL_EXT_5900, MIPS_AFL_EXT_4010): Likewise. (MIPS_AFL_EXT_4100, MIPS_AFL_EXT_3900, MIPS_AFL_EXT_10000): Likewise. (MIPS_AFL_EXT_SB1, MIPS_AFL_EXT_4111, MIPS_AFL_EXT_4120): Likewise. (MIPS_AFL_EXT_5400, MIPS_AFL_EXT_5500): Likewise. (MIPS_AFL_EXT_LOONGSON_2E, MIPS_AFL_EXT_LOONGSON_2F): Likewise. (Val_GNU_MIPS_ABI_FP_ANY, Val_GNU_MIPS_ABI_FP_DOUBLE): New enum values. (Val_GNU_MIPS_ABI_FP_SINGLE, Val_GNU_MIPS_ABI_FP_SOFT): Likewise. (Val_GNU_MIPS_ABI_FP_OLD_64, Val_GNU_MIPS_ABI_FP_XX): Likewise. (Val_GNU_MIPS_ABI_FP_64, Val_GNU_MIPS_ABI_FP_64A): Likewise. (Val_GNU_MIPS_ABI_FP_MAX): Likewise. * sysdeps/mips/Makefile [subdir=elf]: Add tst-abi-interlink, tst-mode-switch-1, tst-mode-switch-2, tst-mode-switch-3 tests. * sysdeps/mips/bits/linkmap.h (struct link_map_machine): Add fpmode field. * sysdeps/mips/dl-machine.h (elf_machine_matches_host): Reject EF_MIPS_FP64. * sysdeps/mips/dl-machine-reject-phdr.h: New file. * sysdeps/mips/tst-abi-fp32mod.c: Likewise. * sysdeps/mips/tst-abi-fpxxmod.c: Likewise. * sysdeps/mips/tst-abi-fpxxomod.c: Likewise. * sysdeps/mips/tst-abi-fp64mod.c: Likewise. * sysdeps/mips/tst-abi-fp64amod.c: Likewise. * sysdeps/mips/tst-abi-interlink.c: Likewise. * sysdeps/mips/tst-mode-switch-1.c: Likewise. * sysdeps/mips/tst-mode-switch-2.c: Likewise. * sysdeps/mips/tst-mode-switch-3.c: Likewise. * sysdeps/unix/sysv/linux/mips/configure.ac (o32-fpabi): Define to record the current FP ABI extension. (mips-mode-switch): Define to show if kernel headers support mode switching. * sysdeps/unix/sysv/linux/mips/configure: Regenerate. * sysdeps/unix/sysv/linux/mips/ldsodefs.h: Increase maximum supported SYSV ABI version to 3. * sysdeps/unix/sysv/linux/mips/libc-abis: Add new MIPS_O32_FP64 feature.
79 lines
2.0 KiB
Makefile
79 lines
2.0 KiB
Makefile
ifeq ($(subdir),misc)
|
|
sysdep_headers += regdef.h fpregdef.h sys/regdef.h sys/fpregdef.h \
|
|
sys/asm.h sgidefs.h
|
|
endif
|
|
|
|
ifeq ($(subdir),setjmp)
|
|
sysdep_routines += setjmp_aux
|
|
endif
|
|
|
|
ifeq ($(subdir),rt)
|
|
librt-sysdep_routines += rt-sysdep
|
|
endif
|
|
|
|
ifeq ($(subdir),debug)
|
|
CFLAGS-backtrace.c += -funwind-tables
|
|
endif
|
|
|
|
ifeq ($(subdir),csu)
|
|
CPPFLAGS-crti.S += $(pic-ccflag)
|
|
CPPFLAGS-crtn.S += $(pic-ccflag)
|
|
endif
|
|
|
|
ifeq ($(subdir),nptl)
|
|
CPPFLAGS-pt-crti.S += $(pic-ccflag)
|
|
CPPFLAGS-crtn.S += $(pic-ccflag)
|
|
endif
|
|
|
|
ASFLAGS-.os += $(pic-ccflag)
|
|
|
|
ifeq ($(subdir),elf)
|
|
ifneq ($(o32-fpabi),)
|
|
tests += tst-abi-interlink
|
|
|
|
fpabi-modules-names =
|
|
fpabi_list =
|
|
ifneq (,$(filter $(o32-fpabi),32 xx xxo))
|
|
fpabi-modules-names += tst-abi-fp32mod
|
|
CFLAGS-tst-abi-fp32mod.c += -mfp32
|
|
endif
|
|
ifneq (,$(filter $(o32-fpabi),xx))
|
|
fpabi-modules-names += tst-abi-fpxxmod
|
|
CFLAGS-tst-abi-fpxxmod.c += -mfpxx -mno-odd-spreg
|
|
endif
|
|
ifneq (,$(filter $(o32-fpabi),xx xxo))
|
|
fpabi-modules-names += tst-abi-fpxxomod
|
|
CFLAGS-tst-abi-fpxxomod.c += -mfpxx -modd-spreg
|
|
endif
|
|
ifneq (,$(filter $(o32-fpabi),xx 64a))
|
|
fpabi-modules-names += tst-abi-fp64amod
|
|
CFLAGS-tst-abi-fp64amod.c += -mfp64 -mno-odd-spreg
|
|
endif
|
|
ifneq (,$(filter $(o32-fpabi),xx xxo 64a 64))
|
|
fpabi-modules-names += tst-abi-fp64mod
|
|
CFLAGS-tst-abi-fp64mod.c += -mfp64 -modd-spreg
|
|
endif
|
|
modules-names += $(fpabi-modules-names)
|
|
|
|
comma:=,
|
|
empty:=
|
|
space:=$(empty) $(empty)
|
|
fpabi_list=$(subst $(space),$(comma),$(patsubst tst-abi-%mod,o_%,\
|
|
$(fpabi-modules-names)))
|
|
CPPFLAGS-tst-abi-interlink.c += -DFPABI_LIST=$(fpabi_list)
|
|
CPPFLAGS-tst-abi-interlink.c += -DFPABI_COUNT=$(words $(fpabi-modules-names))
|
|
CPPFLAGS-tst-abi-interlink.c += -DFPABI_NATIVE=o_fp$(o32-fpabi)
|
|
$(objpfx)tst-abi-interlink: $(libdl)
|
|
$(objpfx)tst-abi-interlink.out: $(patsubst %,$(objpfx)%.so,\
|
|
$(fpabi-modules-names))
|
|
endif
|
|
|
|
ifeq ($(mips-mode-switch),yes)
|
|
ifeq ($(o32-fpabi),xx)
|
|
tests += tst-mode-switch-1 tst-mode-switch-2 tst-mode-switch-3
|
|
$(objpfx)tst-mode-switch-1: $(shared-thread-library)
|
|
$(objpfx)tst-mode-switch-2: $(shared-thread-library)
|
|
endif
|
|
endif
|
|
endif
|