Browse Source

Merge pull request #926 from vriera/develop

Complete support for MIPS n32 ABI
tags/v0.2.19^2
Zhang Xianyi GitHub 9 years ago
parent
commit
eece9fd889
3 changed files with 22 additions and 21 deletions
  1. +9
    -18
      Makefile.system
  2. +7
    -2
      c_check
  3. +6
    -1
      f_check

+ 9
- 18
Makefile.system View File

@@ -502,13 +502,16 @@ endif

ifdef NO_BINARY_MODE

ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
ifeq ($(ARCH), $(filter $(ARCH),mips64))
ifdef BINARY64
CCOMMON_OPT += -mabi=64
else
CCOMMON_OPT += -mabi=32
CCOMMON_OPT += -mabi=n32
endif
BINARY_DEFINED = 1
else ifeq ($(ARCH), $(filter $(ARCH),mips))
CCOMMON_OPT += -mabi=32
BINARY_DEFINED = 1
endif

ifeq ($(CORE), LOONGSON3A)
@@ -599,12 +602,14 @@ ifneq ($(NO_LAPACK), 1)
EXTRALIB += -lgfortran
endif
ifdef NO_BINARY_MODE
ifeq ($(ARCH), $(filter $(ARCH),mips64 mips))
ifeq ($(ARCH), $(filter $(ARCH),mips64))
ifdef BINARY64
FCOMMON_OPT += -mabi=64
else
FCOMMON_OPT += -mabi=32
FCOMMON_OPT += -mabi=n32
endif
else ifeq ($(ARCH), $(filter $(ARCH),mips))
FCOMMON_OPT += -mabi=32
endif
else
ifdef BINARY64
@@ -688,20 +693,6 @@ endif
endif
endif

ifeq ($(filter $(ARCH),mips64 mips))
ifndef BINARY64
FCOMMON_OPT += -m32
else
FCOMMON_OPT += -m64
endif
else
ifdef BINARY64
FCOMMON_OPT += -mabi=64
else
FCOMMON_OPT += -mabi=32
endif
endif

ifeq ($(USE_OPENMP), 1)
FCOMMON_OPT += -mp
endif


+ 7
- 2
c_check View File

@@ -79,8 +79,13 @@ if ($os eq "AIX") {
$defined = 1;
}

if (($architecture eq "mips") || ($architecture eq "mips64")) {
$compiler_name .= " -mabi=32" if ($binary eq "32");
if ($architecture eq "mips") {
$compiler_name .= " -mabi=32";
$defined = 1;
}

if ($architecture eq "mips64") {
$compiler_name .= " -mabi=n32" if ($binary eq "32");
$compiler_name .= " -mabi=64" if ($binary eq "64");
$defined = 1;
}


+ 6
- 1
f_check View File

@@ -223,7 +223,12 @@ if (!$?) {
}
#For gfortran MIPS
if ($?) {
$link = `$compiler $openmp -mabi=32 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
$mips_data = `$compiler_bin -E -dM - < /dev/null`;
if ($mips_data =~ /_MIPS_ISA_MIPS64/) {
$link = `$compiler $openmp -mabi=n32 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
} else {
$link = `$compiler $openmp -mabi=32 -v ftest2.f 2>&1 && rm -f a.out a.exe`;
}
}
$binary = "" if ($?);
}


Loading…
Cancel
Save