| @@ -1,4 +1,12 @@ | |||||
| OpenBLAS ChangeLog | OpenBLAS ChangeLog | ||||
| ==================================================================== | |||||
| Version 0.1 alpha2.2 | |||||
| 14-Jul-2011 | |||||
| common: | |||||
| * Fixed a building bug when DYNAMIC_ARCH=1 & INTERFACE64=1. | |||||
| (Refs issue #44 on github) | |||||
| ==================================================================== | ==================================================================== | ||||
| Version 0.1 alpha2.1 | Version 0.1 alpha2.1 | ||||
| 28-Jun-2011 | 28-Jun-2011 | ||||
| @@ -31,7 +31,7 @@ SUBDIRS_ALL = $(SUBDIRS) test ctest utest exports benchmark ../laswp ../bench | |||||
| all :: libs netlib tests shared | all :: libs netlib tests shared | ||||
| @echo | @echo | ||||
| @echo " GotoBLAS build complete." | |||||
| @echo " OpenBLAS build complete." | |||||
| @echo | @echo | ||||
| @echo " OS ... $(OSNAME) " | @echo " OS ... $(OSNAME) " | ||||
| @echo " Architecture ... $(ARCH) " | @echo " Architecture ... $(ARCH) " | ||||
| @@ -39,6 +39,9 @@ ifndef BINARY64 | |||||
| @echo " BINARY ... 32bit " | @echo " BINARY ... 32bit " | ||||
| else | else | ||||
| @echo " BINARY ... 64bit " | @echo " BINARY ... 64bit " | ||||
| endif | |||||
| ifdef INTERFACE64 | |||||
| @echo " Use 64 bits int (equivalent to \"-i8\" in Fortran) " | |||||
| endif | endif | ||||
| @echo " C compiler ... $(C_COMPILER) (command line : $(CC))" | @echo " C compiler ... $(C_COMPILER) (command line : $(CC))" | ||||
| @echo " Fortran compiler ... $(F_COMPILER) (command line : $(FC))" | @echo " Fortran compiler ... $(F_COMPILER) (command line : $(FC))" | ||||
| @@ -115,6 +118,13 @@ endif | |||||
| #Save the config files for installation | #Save the config files for installation | ||||
| cp Makefile.conf Makefile.conf_last | cp Makefile.conf Makefile.conf_last | ||||
| cp config.h config_last.h | cp config.h config_last.h | ||||
| ifdef QUAD_PRECISION | |||||
| echo "#define QUAD_PRECISION">> config_last.h | |||||
| endif | |||||
| ifeq ($(EXPRECISION), 1) | |||||
| echo "#define EXPRECISION">> config_last.h | |||||
| endif | |||||
| ## | |||||
| ifdef DYNAMIC_ARCH | ifdef DYNAMIC_ARCH | ||||
| $(MAKE) -C kernel commonlibs || exit 1 | $(MAKE) -C kernel commonlibs || exit 1 | ||||
| for d in $(DYNAMIC_CORE) ; \ | for d in $(DYNAMIC_CORE) ; \ | ||||
| @@ -3,7 +3,7 @@ | |||||
| # | # | ||||
| # This library's version | # This library's version | ||||
| VERSION = 0.1alpha2.1 | |||||
| VERSION = 0.1alpha2.2 | |||||
| # You can specify the target architecture, otherwise it's | # You can specify the target architecture, otherwise it's | ||||
| # automatically detected. | # automatically detected. | ||||
| @@ -39,7 +39,7 @@ ifndef GOTOBLAS_MAKEFILE | |||||
| export GOTOBLAS_MAKEFILE = 1 | export GOTOBLAS_MAKEFILE = 1 | ||||
| # Generating Makefile.conf and config.h | # Generating Makefile.conf and config.h | ||||
| DUMMY := $(shell $(MAKE) -C $(TOPDIR) -f Makefile.getarch CC="$(CC)" FC="$(FC)" HOSTCC="$(HOSTCC)" CFLAGS=$(GETARCH_FLAGS) BINARY=$(BINARY) USE_OPENMP=$(USE_OPENMP) TARGET_CORE=$(TARGET_CORE) all) | |||||
| DUMMY := $(shell $(MAKE) -C $(TOPDIR) -f Makefile.getarch CC="$(CC)" FC="$(FC)" HOSTCC="$(HOSTCC)" CFLAGS="$(GETARCH_FLAGS)" BINARY=$(BINARY) USE_OPENMP=$(USE_OPENMP) TARGET_CORE=$(TARGET_CORE) all) | |||||
| ifndef TARGET_CORE | ifndef TARGET_CORE | ||||
| include $(TOPDIR)/Makefile.conf | include $(TOPDIR)/Makefile.conf | ||||
| @@ -72,7 +72,6 @@ Please see Changelog.txt to obtain the differences between GotoBLAS2 1.13 BSD ve | |||||
| 9.Known Issues | 9.Known Issues | ||||
| * The number of CPUs/Cores should less than or equal to 8*sizeof(unsigned long). On 64 bits, the limit | * The number of CPUs/Cores should less than or equal to 8*sizeof(unsigned long). On 64 bits, the limit | ||||
| is 64. On 32 bits, it is 32. | is 64. On 32 bits, it is 32. | ||||
| * This library is not compatible with EKOPath Compiler Suite 4.0.10 (http://www.pathscale.com/ekopath-compiler-suite). However, Path64 (https://github.com/path64/compiler) could compile the codes successfully. | |||||
| 10. Specification of Git Branches | 10. Specification of Git Branches | ||||
| We used the git branching model in this article (http://nvie.com/posts/a-successful-git-branching-model/). | We used the git branching model in this article (http://nvie.com/posts/a-successful-git-branching-model/). | ||||
| @@ -38,6 +38,11 @@ | |||||
| #ifndef ASSEMBLER | #ifndef ASSEMBLER | ||||
| #ifdef __cplusplus | |||||
| extern "C" { | |||||
| /* Assume C declarations for C++ */ | |||||
| #endif /* __cplusplus */ | |||||
| int BLASFUNC(xerbla)(char *, blasint *info, blasint); | int BLASFUNC(xerbla)(char *, blasint *info, blasint); | ||||
| FLOATRET BLASFUNC(sdot) (blasint *, float *, blasint *, float *, blasint *); | FLOATRET BLASFUNC(sdot) (blasint *, float *, blasint *, float *, blasint *); | ||||
| @@ -733,4 +738,10 @@ xdouble BLASFUNC(qlamch)(char *); | |||||
| FLOATRET BLASFUNC(slamc3)(float *, float *); | FLOATRET BLASFUNC(slamc3)(float *, float *); | ||||
| double BLASFUNC(dlamc3)(double *, double *); | double BLASFUNC(dlamc3)(double *, double *); | ||||
| xdouble BLASFUNC(qlamc3)(xdouble *, xdouble *); | xdouble BLASFUNC(qlamc3)(xdouble *, xdouble *); | ||||
| #ifdef __cplusplus | |||||
| } | |||||
| #endif /* __cplusplus */ | |||||
| #endif | #endif | ||||
| @@ -6,6 +6,16 @@ | |||||
| #define BLASFUNC(FUNC) FUNC | #define BLASFUNC(FUNC) FUNC | ||||
| #endif | #endif | ||||
| #ifdef QUAD_PRECISION | |||||
| typedef struct { | |||||
| unsigned long x[2]; | |||||
| } xdouble; | |||||
| #elif defined EXPRECISION | |||||
| #define xdouble long double | |||||
| #else | |||||
| #define xdouble double | |||||
| #endif | |||||
| #if defined(OS_WINDOWS) && defined(__64BIT__) | #if defined(OS_WINDOWS) && defined(__64BIT__) | ||||
| typedef long long BLASLONG; | typedef long long BLASLONG; | ||||
| typedef unsigned long long BLASULONG; | typedef unsigned long long BLASULONG; | ||||
| @@ -19,3 +29,13 @@ typedef BLASLONG blasint; | |||||
| #else | #else | ||||
| typedef int blasint; | typedef int blasint; | ||||
| #endif | #endif | ||||
| #if defined(XDOUBLE) || defined(DOUBLE) | |||||
| #define FLOATRET FLOAT | |||||
| #else | |||||
| #ifdef NEED_F2CCONV | |||||
| #define FLOATRET double | |||||
| #else | |||||
| #define FLOATRET float | |||||
| #endif | |||||
| #endif | |||||