diff options
author | Zhang Xianyi <xianyi@iscas.ac.cn> | 2012-07-06 22:09:12 +0800 |
---|---|---|
committer | Zhang Xianyi <xianyi@iscas.ac.cn> | 2012-07-06 22:09:12 +0800 |
commit | 71d29fa3d0e47e3b3f17bd15b63ae4dad66e7efa (patch) | |
tree | 4ae4398b9693c35e675016092a6a45b27be8d164 | |
parent | 551f478477b72a98f8a4767ef7ebb34b5be1bf8e (diff) | |
parent | 50848e34ec2b67ff38ee4ddb057ec8884707a469 (diff) | |
download | openblas-0.2.2.tar.gz openblas-0.2.2.tar.bz2 openblas-0.2.2.zip |
Merge branch 'develop'v0.2.2
-rw-r--r-- | Changelog.txt | 12 | ||||
-rw-r--r-- | Makefile.rule | 2 | ||||
-rw-r--r-- | common_linux.h | 8 | ||||
-rw-r--r-- | cpuid_x86.c | 54 | ||||
-rw-r--r-- | ctest.c | 7 | ||||
-rw-r--r-- | driver/others/memory.c | 2 | ||||
-rw-r--r-- | exports/gensymbol | 35 | ||||
-rw-r--r-- | param.h | 2 |
8 files changed, 77 insertions, 45 deletions
diff --git a/Changelog.txt b/Changelog.txt index 019870d8c..4e80473d6 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,17 @@ OpenBLAS ChangeLog ==================================================================== +Version 0.2.2 +6-July-2012 +common: + * Fixed exporting DLL functions bug on Windows/MingW + * Support GNU Hurd (Thank Sylvestre Ledru) + * Support kfreebsd kernel (Thank Sylvestre Ledru) +x86/x86-64: + * Support Intel Sandy Bridge 22nm desktop/mobile CPU +SPARC: + * Improve the detection of SPARC (Thank Sylvestre Ledru) + +==================================================================== Version 0.2.1 30-Jun-2012 common: diff --git a/Makefile.rule b/Makefile.rule index 082487835..85abf584b 100644 --- a/Makefile.rule +++ b/Makefile.rule @@ -3,7 +3,7 @@ # # This library's version -VERSION = 0.2.1 +VERSION = 0.2.2 # If you set the suffix, the library name will be libopenblas_$(LIBNAMESUFFIX).a # and libopenblas_$(LIBNAMESUFFIX).so. Meanwhile, the soname in shared library diff --git a/common_linux.h b/common_linux.h index b0381d991..6766ff37c 100644 --- a/common_linux.h +++ b/common_linux.h @@ -86,7 +86,13 @@ static inline int my_set_mempolicy(int mode, const unsigned long *addr, unsigned return syscall(SYS_set_mempolicy, mode, addr, flag); } -static inline int my_gettid(void) { return syscall(SYS_gettid); } +static inline int my_gettid(void) { +#ifdef SYS_gettid +return syscall(SYS_gettid); +#else +return getpid(); +#endif +} #endif #endif diff --git a/cpuid_x86.c b/cpuid_x86.c index ea1162e8f..b304cdade 100644 --- a/cpuid_x86.c +++ b/cpuid_x86.c @@ -975,27 +975,33 @@ int get_cpuname(void){ return CPUTYPE_DUNNINGTON; } break; - case 2: - switch (model) { - case 5: - //Intel Core (Clarkdale) / Core (Arrandale) - // Pentium (Clarkdale) / Pentium Mobile (Arrandale) - // Xeon (Clarkdale), 32nm - return CPUTYPE_NEHALEM; - case 10: - //Intel Core i5-2000 /i7-2000 (Sandy Bridge) - return CPUTYPE_SANDYBRIDGE; - case 12: - //Xeon Processor 5600 (Westmere-EP) - return CPUTYPE_NEHALEM; - case 13: - //Intel Core i7-3000 / Xeon E5 (Sandy Bridge) - return CPUTYPE_SANDYBRIDGE; - case 15: - //Xeon Processor E7 (Westmere-EX) - return CPUTYPE_NEHALEM; - } - break; + case 2: + switch (model) { + case 5: + //Intel Core (Clarkdale) / Core (Arrandale) + // Pentium (Clarkdale) / Pentium Mobile (Arrandale) + // Xeon (Clarkdale), 32nm + return CPUTYPE_NEHALEM; + case 10: + //Intel Core i5-2000 /i7-2000 (Sandy Bridge) + return CPUTYPE_SANDYBRIDGE; + case 12: + //Xeon Processor 5600 (Westmere-EP) + return CPUTYPE_NEHALEM; + case 13: + //Intel Core i7-3000 / Xeon E5 (Sandy Bridge) + return CPUTYPE_SANDYBRIDGE; + case 15: + //Xeon Processor E7 (Westmere-EX) + return CPUTYPE_NEHALEM; + } + break; + case 3: + switch (model) { + case 10: + return CPUTYPE_SANDYBRIDGE; + } + break; } break; case 0x7: @@ -1349,6 +1355,12 @@ int get_coretype(void){ return CORE_NEHALEM; } break; + case 3: + switch (model) { + case 10: + return CORE_SANDYBRIDGE; + } + break; } break; @@ -34,7 +34,7 @@ COMPILER_GNU OS_LINUX #endif -#if defined(__FreeBSD__) +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) OS_FREEBSD #endif @@ -70,6 +70,11 @@ OS_CYGWIN_NT OS_INTERIX #endif +#if defined(__gnu_hurd__) +/* Hurd is very similar to GNU/Linux, it should work out of the box */ +OS_LINUX +#endif + #if defined(__i386) || defined(_X86) ARCH_X86 #endif diff --git a/driver/others/memory.c b/driver/others/memory.c index 9b8863f39..af9b54eff 100644 --- a/driver/others/memory.c +++ b/driver/others/memory.c @@ -1128,7 +1128,7 @@ static BLASULONG init_lock = 0UL; static void _touch_memory(blas_arg_t *arg, BLASLONG *range_m, BLASLONG *range_n, void *sa, void *sb, BLASLONG pos) { -#ifndef ARCH_POWER +#if !defined(ARCH_POWER) && !defined(ARCH_SPARC) long size; BLASULONG buffer; diff --git a/exports/gensymbol b/exports/gensymbol index e09a8b6ab..64c92d396 100644 --- a/exports/gensymbol +++ b/exports/gensymbol @@ -2760,30 +2760,27 @@ if ($ARGV[0] eq "win2k"){ print "EXPORTS\n"; $count = 1; - #remove openblas_set_num_threads - @underscore_objs = grep /[^openblas_set_num_threads]/,@underscore_objs; - foreach $objs (@underscore_objs) { - $uppercase = $objs; - $uppercase =~ tr/[a-z]/[A-Z]/; - print "\t$objs=$objs","_ \@", $count, "\n"; - $count ++; - print "\t",$objs, "_=$objs","_ \@", $count, "\n"; - $count ++; - print "\t$uppercase=$objs", "_ \@", $count, "\n"; - $count ++; + unless ($objs =~ /openblas_set_num_threads/) { #remove openblas_set_num_threads + $uppercase = $objs; + $uppercase =~ tr/[a-z]/[A-Z]/; + print "\t$objs=$objs","_ \@", $count, "\n"; + $count ++; + print "\t",$objs, "_=$objs","_ \@", $count, "\n"; + $count ++; + print "\t$uppercase=$objs", "_ \@", $count, "\n"; + $count ++; + } } - #for openblas_set_num_threads + #for openblas_set_num_threads print "\topenblas_set_num_threads_=openblas_set_num_threads_ \@", $count, "\n"; + $count ++; + + foreach $objs (@no_underscore_objs) { + print "\t",$objs,"=$objs"," \@", $count, "\n"; $count ++; - -# if ($ARGV[4] == 0) { - foreach $objs (@no_underscore_objs) { - print "\t",$objs,"=$objs"," \@", $count, "\n"; - $count ++; - } -# } + } exit(0); } @@ -1482,7 +1482,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. #define GEMM_THREAD gemm_thread_mn #endif -#if defined(SPARC) && defined(V9) +#if (defined(SPARC) && defined(V9)) || defined(__sparc_v9__) #define SNUMOPT 2 #define DNUMOPT 2 |