Merge pull request #2682 from martin-frbg/aix
[WIP] fix compilation on AIX
This commit is contained in:
commit
419b8686d1
|
@ -36,6 +36,9 @@ FCOMMON_OPT += -O2 -frecursive -mcpu=power8 -mtune=power8 -malign-power -DUSE_OP
|
||||||
else
|
else
|
||||||
COMMON_OPT += -Ofast -mcpu=power8 -mtune=power8 -mvsx -malign-power -fno-fast-math
|
COMMON_OPT += -Ofast -mcpu=power8 -mtune=power8 -mvsx -malign-power -fno-fast-math
|
||||||
FCOMMON_OPT += -O2 -frecursive -mcpu=power8 -mtune=power8 -malign-power -fno-fast-math
|
FCOMMON_OPT += -O2 -frecursive -mcpu=power8 -mtune=power8 -malign-power -fno-fast-math
|
||||||
|
ifeq ($(OSNAME), AIX)
|
||||||
|
FCOMMON_OPT += -O1 -frecursive -mcpu=power8 -mtune=power8 -malign-power -fno-fast-math
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -78,6 +81,9 @@ CCOMMON_OPT += -mpowerpc64 -maix64
|
||||||
ifeq ($(COMPILER_F77), g77)
|
ifeq ($(COMPILER_F77), g77)
|
||||||
FCOMMON_OPT += -mpowerpc64 -maix64
|
FCOMMON_OPT += -mpowerpc64 -maix64
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(F_COMPILER), GFORTRAN)
|
||||||
|
FCOMMON_OPT += -mpowerpc64 -maix64
|
||||||
|
endif
|
||||||
ifeq ($(COMPILER_F77), xlf)
|
ifeq ($(COMPILER_F77), xlf)
|
||||||
FCOMMON_OPT += -q64
|
FCOMMON_OPT += -q64
|
||||||
endif
|
endif
|
||||||
|
|
|
@ -109,6 +109,9 @@ endif
|
||||||
ifeq ($(TARGET), ARMV8)
|
ifeq ($(TARGET), ARMV8)
|
||||||
GETARCH_FLAGS := -DFORCE_ARMV7
|
GETARCH_FLAGS := -DFORCE_ARMV7
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(TARGET), POWER8)
|
||||||
|
GETARCH_FLAGS := -DFORCE_POWER6
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
|
1
c_check
1
c_check
|
@ -6,6 +6,7 @@
|
||||||
# Checking cross compile
|
# Checking cross compile
|
||||||
$hostos = `uname -s | sed -e s/\-.*//`; chop($hostos);
|
$hostos = `uname -s | sed -e s/\-.*//`; chop($hostos);
|
||||||
$hostarch = `uname -m | sed -e s/i.86/x86/`;chop($hostarch);
|
$hostarch = `uname -m | sed -e s/i.86/x86/`;chop($hostarch);
|
||||||
|
$hostarch = `uname -p` if ($hostos eq "AIX");
|
||||||
$hostarch = "x86_64" if ($hostarch eq "amd64");
|
$hostarch = "x86_64" if ($hostarch eq "amd64");
|
||||||
$hostarch = "arm" if ($hostarch =~ /^arm.*/);
|
$hostarch = "arm" if ($hostarch =~ /^arm.*/);
|
||||||
$hostarch = "arm64" if ($hostarch eq "aarch64");
|
$hostarch = "arm64" if ($hostarch eq "aarch64");
|
||||||
|
|
|
@ -154,17 +154,17 @@ int detect(void){
|
||||||
|
|
||||||
pclose(infile);
|
pclose(infile);
|
||||||
|
|
||||||
if (!strncasecmp(p, "POWER3", 6)) return CPUTYPE_POWER3;
|
if (strstr(p, "POWER3")) return CPUTYPE_POWER3;
|
||||||
if (!strncasecmp(p, "POWER4", 6)) return CPUTYPE_POWER4;
|
if (strstr(p, "POWER4")) return CPUTYPE_POWER4;
|
||||||
if (!strncasecmp(p, "PPC970", 6)) return CPUTYPE_PPC970;
|
if (strstr(p, "PPC970")) return CPUTYPE_PPC970;
|
||||||
if (!strncasecmp(p, "POWER5", 6)) return CPUTYPE_POWER5;
|
if (strstr(p, "POWER5")) return CPUTYPE_POWER5;
|
||||||
if (!strncasecmp(p, "POWER6", 6)) return CPUTYPE_POWER6;
|
if (strstr(p, "POWER6")) return CPUTYPE_POWER6;
|
||||||
if (!strncasecmp(p, "POWER7", 6)) return CPUTYPE_POWER6;
|
if (strstr(p, "POWER7")) return CPUTYPE_POWER6;
|
||||||
if (!strncasecmp(p, "POWER8", 6)) return CPUTYPE_POWER8;
|
if (strstr(p, "POWER8")) return CPUTYPE_POWER8;
|
||||||
if (!strncasecmp(p, "POWER9", 6)) return CPUTYPE_POWER9;
|
if (strstr(p, "POWER9")) return CPUTYPE_POWER9;
|
||||||
if (!strncasecmp(p, "POWER10", 7)) return CPUTYPE_POWER10;
|
if (strstr(p, "POWER10")) return CPUTYPE_POWER10;
|
||||||
if (!strncasecmp(p, "Cell", 4)) return CPUTYPE_CELL;
|
if (strstr(p, "Cell")) return CPUTYPE_CELL;
|
||||||
if (!strncasecmp(p, "7447", 4)) return CPUTYPE_PPCG4;
|
if (strstr(p, "7447")) return CPUTYPE_PPCG4;
|
||||||
return CPUTYPE_POWER5;
|
return CPUTYPE_POWER5;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
10
getarch.c
10
getarch.c
|
@ -90,11 +90,16 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||||
#include <sys/sysinfo.h>
|
#include <sys/sysinfo.h>
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#endif
|
#endif
|
||||||
|
#if defined(AIX)
|
||||||
|
#include <sys/sysinfo.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if defined(__x86_64__) || defined(_M_X64)
|
||||||
#if (( defined(__GNUC__) && __GNUC__ > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6))
|
#if (( defined(__GNUC__) && __GNUC__ > 6 && defined(__AVX2__)) || (defined(__clang__) && __clang_major__ >= 6))
|
||||||
#else
|
#else
|
||||||
#define NO_AVX512
|
#define NO_AVX512
|
||||||
#endif
|
#endif
|
||||||
|
#endif
|
||||||
/* #define FORCE_P2 */
|
/* #define FORCE_P2 */
|
||||||
/* #define FORCE_KATMAI */
|
/* #define FORCE_KATMAI */
|
||||||
/* #define FORCE_COPPERMINE */
|
/* #define FORCE_COPPERMINE */
|
||||||
|
@ -1297,6 +1302,11 @@ static int get_num_cores(void) {
|
||||||
sysctl(m, 2, &count, &len, NULL, 0);
|
sysctl(m, 2, &count, &len, NULL, 0);
|
||||||
|
|
||||||
return count;
|
return count;
|
||||||
|
|
||||||
|
#elif defined(AIX)
|
||||||
|
//returns the number of processors which are currently online
|
||||||
|
return sysconf(_SC_NPROCESSORS_ONLN);
|
||||||
|
|
||||||
#else
|
#else
|
||||||
return 2;
|
return 2;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -34,6 +34,9 @@ endif
|
||||||
ifeq ($(C_COMPILER), PGI)
|
ifeq ($(C_COMPILER), PGI)
|
||||||
OBJS = utest_main2.o
|
OBJS = utest_main2.o
|
||||||
endif
|
endif
|
||||||
|
ifeq ($(OSNAME), AIX)
|
||||||
|
OBJS = utest_main2.o
|
||||||
|
endif
|
||||||
|
|
||||||
all : run_test
|
all : run_test
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue