1999-01-01 02:12:40 +08:00
|
|
|
ifeq ($(subdir),misc)
|
2000-09-06 16:21:55 +08:00
|
|
|
sysdep_headers += regdef.h fpregdef.h sys/regdef.h sys/fpregdef.h \
|
|
|
|
sys/asm.h sgidefs.h
|
1999-01-01 02:12:40 +08:00
|
|
|
endif
|
|
|
|
|
1992-04-30 11:11:03 +08:00
|
|
|
ifeq ($(subdir),setjmp)
|
1998-11-29 04:59:14 +08:00
|
|
|
sysdep_routines += setjmp_aux
|
1992-04-30 11:11:03 +08:00
|
|
|
endif
|
2004-12-20 16:34:03 +08:00
|
|
|
|
|
|
|
ifeq ($(subdir),rt)
|
|
|
|
librt-sysdep_routines += rt-sysdep
|
|
|
|
endif
|
2006-06-02 23:09:39 +08:00
|
|
|
|
2012-01-04 00:20:45 +08:00
|
|
|
ifeq ($(subdir),debug)
|
|
|
|
CFLAGS-backtrace.c += -funwind-tables
|
|
|
|
endif
|
|
|
|
|
2012-01-04 20:03:20 +08:00
|
|
|
ifeq ($(subdir),csu)
|
2012-02-10 20:28:07 +08:00
|
|
|
CPPFLAGS-crti.S += $(pic-ccflag)
|
|
|
|
CPPFLAGS-crtn.S += $(pic-ccflag)
|
2012-01-04 20:03:20 +08:00
|
|
|
endif
|
|
|
|
|
|
|
|
ifeq ($(subdir),nptl)
|
2012-02-10 20:28:07 +08:00
|
|
|
CPPFLAGS-pt-crti.S += $(pic-ccflag)
|
|
|
|
CPPFLAGS-crtn.S += $(pic-ccflag)
|
2012-01-04 20:03:20 +08:00
|
|
|
endif
|
|
|
|
|
2006-06-02 23:09:39 +08:00
|
|
|
ASFLAGS-.os += $(pic-ccflag)
|
Add support for MIPS O32 FPXX and .MIPS.abiflags
* 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.
2014-06-01 07:16:25 +08:00
|
|
|
|
|
|
|
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
|