summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZhang Xianyi <xianyi@iscas.ac.cn>2012-07-06 22:09:12 +0800
committerZhang Xianyi <xianyi@iscas.ac.cn>2012-07-06 22:09:12 +0800
commit71d29fa3d0e47e3b3f17bd15b63ae4dad66e7efa (patch)
tree4ae4398b9693c35e675016092a6a45b27be8d164
parent551f478477b72a98f8a4767ef7ebb34b5be1bf8e (diff)
parent50848e34ec2b67ff38ee4ddb057ec8884707a469 (diff)
downloadopenblas-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.txt12
-rw-r--r--Makefile.rule2
-rw-r--r--common_linux.h8
-rw-r--r--cpuid_x86.c54
-rw-r--r--ctest.c7
-rw-r--r--driver/others/memory.c2
-rw-r--r--exports/gensymbol35
-rw-r--r--param.h2
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;
diff --git a/ctest.c b/ctest.c
index 9fc0b0c40..95a5e8bb2 100644
--- a/ctest.c
+++ b/ctest.c
@@ -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);
}
diff --git a/param.h b/param.h
index 5465c1cbd..c6cd354be 100644
--- a/param.h
+++ b/param.h
@@ -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