View | Details | Raw Unified | Return to bug 231371 | Differences between
and this patch

Collapse All | Expand All

(-)Makefile (-81 / +25 lines)
Lines 2-9 Link Here
2
# $FreeBSD$
2
# $FreeBSD$
3
3
4
PORTNAME=	openblas
4
PORTNAME=	openblas
5
PORTVERSION=	0.2.20
5
PORTVERSION=	0.3.6
6
PORTREVISION=	8
7
DISTVERSIONPREFIX=	v
6
DISTVERSIONPREFIX=	v
8
PORTEPOCH=	1
7
PORTEPOCH=	1
9
CATEGORIES=	math
8
CATEGORIES=	math
Lines 17-40 Link Here
17
LICENSE=	BSD3CLAUSE
16
LICENSE=	BSD3CLAUSE
18
LICENSE_FILE=	${WRKSRC}/LICENSE
17
LICENSE_FILE=	${WRKSRC}/LICENSE
19
18
20
BROKEN_powerpc64=	fails to compile: gemm.c:403: 'SGEMM_DEFAULT_Q' undeclared (first use in this function)
19
CONFLICTS_INSTALL=	cblas lapacke
21
20
22
USES=		fortran gmake perl5
21
USES=		fortran gmake perl5 pkgconfig
23
24
USE_GITHUB=	yes
22
USE_GITHUB=	yes
25
GH_ACCOUNT=	xianyi
23
GH_ACCOUNT=	xianyi
26
GH_PROJECT=	OpenBLAS
24
GH_PROJECT=	OpenBLAS
27
LARGE_FILE=	large.tgz
25
LARGE_FILE=	large.tgz
28
TIMING_FILE=	timing.tgz
26
TIMING_FILE=	timing.tgz
29
30
USE_LDCONFIG=	yes
27
USE_LDCONFIG=	yes
31
USE_PERL5=	build
28
USE_PERL5=	build
32
29
33
OPENBLAS_SUFX=	r${PORTVERSION}
30
CMAKE_ON=	BUILD_SHARED_LIBS
34
OPENBLAS_LIBS=	libopenblas libopenblasp
31
35
OPENBLAS_SVER=	0
36
OPENBLAS_FILES=	${OPENBLAS_LIBS:S|$|.so|} ${OPENBLAS_LIBS:S|$|.so.${OPENBLAS_SVER}|} ${OPENBLAS_LIBS:S|$|.a|}
37
PLIST_FILES=	${OPENBLAS_FILES:S|^|lib/|}
38
TEST_TARGET=	tests
32
TEST_TARGET=	tests
39
33
40
BUILDFLAGS=	FCOMMON_OPT=-frecursive MAKE_NB_JOBS=-1
34
BUILDFLAGS=	FCOMMON_OPT=-frecursive MAKE_NB_JOBS=-1
Lines 54-59 Link Here
54
AVX_DESC=		Support Advanced Vector Extensions (AVX)
48
AVX_DESC=		Support Advanced Vector Extensions (AVX)
55
AVX2_DESC=		Support Advanced Vector Extensions 2 (AVX2)
49
AVX2_DESC=		Support Advanced Vector Extensions 2 (AVX2)
56
50
51
DYNAMIC_ARCH_CMAKE_BOOL=	DYNAMIC_ARCH
52
53
INTERFACE64_CMAKE_BOOL=	INTERFACE64
54
55
MAKE_ENV=	TARGET=POWER7
56
USE_OPENMP_USES=	compiler:openmp
57
USE_OPENMP_CMAKE_BOOL=	USE_OPENMP
58
59
AVX_CMAKE_OFF=	-DNO_AVX=1
60
AVX2_CMAKE_OFF=	-DNO_AVX2=1
61
57
.include <bsd.port.options.mk>
62
.include <bsd.port.options.mk>
58
63
59
.if defined(TARGET_CPU_ARCH)
64
.if defined(TARGET_CPU_ARCH)
Lines 69-99 Link Here
69
BUILDFLAGS+=	BINARY64=1
74
BUILDFLAGS+=	BINARY64=1
70
.endif
75
.endif
71
76
77
.if ${ARCH} == powerpc64
78
USE_GCC=	yes
79
.endif
80
72
.if ! ${PORT_OPTIONS:MDYNAMIC_ARCH} && ( ${ARCH} == "amd64" || ${ARCH} == "i386" )
81
.if ! ${PORT_OPTIONS:MDYNAMIC_ARCH} && ( ${ARCH} == "amd64" || ${ARCH} == "i386" )
73
MANUAL_PACKAGE_BUILD=	Optimizes for the build machine.
82
MANUAL_PACKAGE_BUILD=	Optimizes for the build machine.
74
.endif
83
.endif
75
84
76
.if ${PORT_OPTIONS:MDYNAMIC_ARCH}
77
BUILDFLAGS+=	DYNAMIC_ARCH=1
78
.endif
79
80
.if ${PORT_OPTIONS:MINTERFACE64}
81
BUILDFLAGS+=	INTERFACE64=1
82
.endif
83
84
.if ${PORT_OPTIONS:MOPENMP}
85
USES+=		compiler:openmp
86
BUILDFLAGS_THREAD+=	USE_OPENMP=1
87
.endif
88
89
.if ! ${PORT_OPTIONS:MAVX}
90
BUILDFLAGS+=	NO_AVX=1
91
.endif
92
93
.if ! ${PORT_OPTIONS:MAVX2}
94
BUILDFLAGS+=	NO_AVX2=1
95
.endif
96
97
post-extract:
85
post-extract:
98
	cd ${DISTDIR}/${DIST_SUBDIR} ; \
86
	cd ${DISTDIR}/${DIST_SUBDIR} ; \
99
	${CP} ${LARGE_FILE} ${TIMING_FILE} ${WRKSRC}
87
	${CP} ${LARGE_FILE} ${TIMING_FILE} ${WRKSRC}
Lines 100-153 Link Here
100
	${MKDIR} ${WRKDIR}/lib
88
	${MKDIR} ${WRKDIR}/lib
101
89
102
post-patch:
90
post-patch:
103
	${REINPLACE_CMD} -e "s+%%FIND%%+${FIND}+" \
91
	${REINPLACE_CMD} \
104
	-e "s+%%XARGS%%+${XARGS}+" \
92
		-e 's/defined(linux)/(defined(linux) || defined(__FreeBSD__))/g' \
105
	-e "s+%%REINPLACE_CMD%%+${REINPLACE_CMD}+" \
93
		-e 's/ifdef linux/if defined(linux) || defined(__FreeBSD__)/g' \
106
		${WRKSRC}/Makefile
94
		${WRKSRC}/kernel/power/*.S
107
	${REINPLACE_CMD} -e "s+%%FC%%+${FC}+" -e "s+%%CC%%+${CC}+" \
108
		${WRKSRC}/Makefile.rule
109
	${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" \
110
		${WRKSRC}/Makefile.rule \
111
		${WRKSRC}/Makefile.tail \
112
		${WRKSRC}/driver/level3/Makefile \
113
		${WRKSRC}/driver/others/Makefile \
114
		${WRKSRC}/exports/Makefile \
115
		${WRKSRC}/interface/Makefile \
116
		${WRKSRC}/kernel/Makefile \
117
		${WRKSRC}/kernel/Makefile.L3 \
118
		${WRKSRC}/lapack/laswp/Makefile \
119
		${WRKSRC}/lapack-netlib/SRC/Makefile \
120
		${WRKSRC}/lapack-netlib/SRC/VARIANTS/Makefile \
121
		${WRKSRC}/lapack-netlib/TESTING/MATGEN/Makefile \
122
		${WRKSRC}/lapack-netlib/LAPACKE/src/Makefile \
123
		${WRKSRC}/lapack-netlib/LAPACKE/utils/Makefile \
124
		${WRKSRC}/reference/Makefile
125
	${REINPLACE_CMD} -e "s+(ARCH)+(ARCH_)+" \
126
	-e 's+%%LDFLAGS%%+${LDFLAGS}+' \
127
	-e 's+%%LOCALBASE%%+${LOCALBASE}+' \
128
	-e 's+%%FIND%%+${FIND}+' \
129
	-e 's+%%XARGS%%+${XARGS}+' \
130
	-e 's+%%REINPLACE_CMD%%+${REINPLACE_CMD}+' \
131
	-e 's+$${CROSS_SUFFIX}+${LOCALBASE}/bin/+' \
132
	-e '/Clang.*OpenMP/g' \
133
		${WRKSRC}/Makefile.system
134
95
135
post-patch-OPENMP-on:
96
post-patch-OPENMP-on:
136
	${REINPLACE_CMD} -e "s+OPENBLAS_NUM_THREADS+OMP_NUM_THREADS+g" \
97
	${REINPLACE_CMD} -e "s+OPENBLAS_NUM_THREADS+OMP_NUM_THREADS+g" \
137
		${WRKSRC}/test/Makefile \
98
		${WRKSRC}/test/Makefile \
138
		${WRKSRC}/ctest/Makefile
99
		${WRKSRC}/ctest/Makefile
100
#	${REINPLACE_CMD} -e 's/if defined(_AIX) || defined(__APPLE__)/if defined(_AIX) || defined(__APPLE__) || defined(__FreeBSD__)/g' \
139
101
140
do-build:
141
	cd ${WRKSRC} ; ${SETENV} ${BUILDFLAGS} NUM_THREADS=1 USE_THREAD=0 \
142
	${MAKE_CMD} ${MAKE_ARGS}
143
	${CP} ${WRKSRC}/libopenblas-${OPENBLAS_SUFX}.a ${WRKDIR}/lib/libopenblas.a
144
	${CP} ${WRKSRC}/libopenblas-${OPENBLAS_SUFX}.so ${WRKDIR}/lib/libopenblas.so.${OPENBLAS_SVER}
145
	cd ${WRKSRC} ; ${MAKE_CMD} ${MAKE_ARGS} clean
146
	cd ${WRKSRC} ; ${SETENV} ${BUILDFLAGS} ${BUILDFLAGS_THREAD} \
147
	${MAKE_CMD} ${MAKE_ARGS}
148
	${CP} ${WRKSRC}/libopenblasp-${OPENBLAS_SUFX}.a ${WRKDIR}/lib/libopenblasp.a
149
	${CP} ${WRKSRC}/libopenblasp-${OPENBLAS_SUFX}.so ${WRKDIR}/lib/libopenblasp.so.${OPENBLAS_SVER}
150
151
BENCHMARK_MAXTHREADS?=	${MAXTHREADS}
102
BENCHMARK_MAXTHREADS?=	${MAXTHREADS}
152
.if ${PORT_OPTIONS:MOPENMP}
103
.if ${PORT_OPTIONS:MOPENMP}
153
BENCHMARK_THREADS_FLAG=		OMP_NUM_THREADS=${BENCHMARK_MAXTHREADS}
104
BENCHMARK_THREADS_FLAG=		OMP_NUM_THREADS=${BENCHMARK_MAXTHREADS}
Lines 161-171 Link Here
161
	cd ${WRKSRC}/benchmark ; ${SETENV} ${BUILDFLAGS} NUM_THREADS=${MAXTHREADS} \
112
	cd ${WRKSRC}/benchmark ; ${SETENV} ${BUILDFLAGS} NUM_THREADS=${MAXTHREADS} \
162
	USE_THREAD=1 ${BENCHMARK_THREADS_FLAG} ${MAKE_CMD} ${MAKE_ARGS}
113
	USE_THREAD=1 ${BENCHMARK_THREADS_FLAG} ${MAKE_CMD} ${MAKE_ARGS}
163
114
164
do-install:
165
.for L in ${OPENBLAS_LIBS}
166
	${INSTALL_DATA} ${WRKDIR}/lib/${L}.a ${STAGEDIR}${PREFIX}/lib
167
	${INSTALL_LIB} ${WRKDIR}/lib/${L}.so.${OPENBLAS_SVER} ${STAGEDIR}${PREFIX}/lib
168
	${LN} -sf ${L}.so.${OPENBLAS_SVER} ${STAGEDIR}${PREFIX}/lib/${L}.so
169
.endfor
170
171
.include <bsd.port.mk>
115
.include <bsd.port.mk>
(-)distinfo (-3 / +3 lines)
Lines 1-7 Link Here
1
TIMESTAMP = 1503123719
1
TIMESTAMP = 1556566525
2
SHA256 (openblas/large.tgz) = f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1
2
SHA256 (openblas/large.tgz) = f328d88b7fa97722f271d7d0cfea1c220e0f8e5ed5ff01d8ef1eb51d6f4243a1
3
SIZE (openblas/large.tgz) = 2595
3
SIZE (openblas/large.tgz) = 2595
4
SHA256 (openblas/timing.tgz) = 999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af
4
SHA256 (openblas/timing.tgz) = 999c65f8ea8bd4eac7f1c7f3463d4946917afd20a997807300fe35d70122f3af
5
SIZE (openblas/timing.tgz) = 1059485
5
SIZE (openblas/timing.tgz) = 1059485
6
SHA256 (openblas/xianyi-OpenBLAS-v0.2.20_GH0.tar.gz) = 5ef38b15d9c652985774869efd548b8e3e972e1e99475c673b25537ed7bcf394
6
SHA256 (openblas/xianyi-OpenBLAS-v0.3.6_GH0.tar.gz) = e64c8fe083832ffbc1459ab6c72f71d53afd3b36e8497c922a15a06b72e9002f
7
SIZE (openblas/xianyi-OpenBLAS-v0.2.20_GH0.tar.gz) = 11637301
7
SIZE (openblas/xianyi-OpenBLAS-v0.3.6_GH0.tar.gz) = 11920973
(-)files/patch-Makefile (-11 lines)
Lines 1-11 Link Here
1
--- Makefile.orig	2015-10-27 20:44:50 UTC
2
+++ Makefile
3
@@ -238,7 +238,7 @@ ifndef NOFORTRAN
4
 	-@echo "LOADOPTS    = $(FFLAGS) $(EXTRALIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
5
 	-@echo "CC          = $(CC)" >> $(NETLIB_LAPACK_DIR)/make.inc
6
 	-@echo "override CFLAGS      = $(LAPACK_CFLAGS)" >> $(NETLIB_LAPACK_DIR)/make.inc
7
-	-@echo "ARCH        = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc
8
+	-@echo "ARCH_       = $(AR)" >> $(NETLIB_LAPACK_DIR)/make.inc
9
 	-@echo "ARCHFLAGS   = -ru" >> $(NETLIB_LAPACK_DIR)/make.inc
10
 	-@echo "RANLIB      = $(RANLIB)" >> $(NETLIB_LAPACK_DIR)/make.inc
11
 	-@echo "LAPACKLIB   = ../$(LIBNAME)" >> $(NETLIB_LAPACK_DIR)/make.inc
(-)files/patch-Makefile.rule (-15 lines)
Lines 1-15 Link Here
1
--- Makefile.rule.orig	2015-10-27 20:44:50 UTC
2
+++ Makefile.rule
3
@@ -19,10 +19,10 @@ VERSION = 0.2.15
4
 
5
 # C compiler including binary type(32bit / 64bit). Default is gcc.
6
 # Don't use Intel Compiler or PGI, it won't generate right codes as I expect.
7
-# CC = gcc
8
+CC = %%CC%%
9
 
10
 # Fortran compiler. Default is g77.
11
-# FC = gfortran
12
+FC = %%FC%%
13
 
14
 # Even you can specify cross compiler. Meanwhile, please set HOSTCC.
15
 
(-)files/patch-Makefile.system (-57 / +10 lines)
Lines 1-62 Link Here
1
--- Makefile.system.orig	2015-10-27 20:44:50 UTC
1
--- Makefile.system.orig	2019-04-29 17:22:19 UTC
2
+++ Makefile.system
2
+++ Makefile.system
3
@@ -218,6 +218,7 @@ MD5SUM = md5 -r
3
@@ -20,6 +20,12 @@ else ifeq ($(ARCH), aarch64)
4
 override ARCH=arm64
4
 endif
5
 endif
5
 
6
 
6
 ifeq ($(OSNAME), FreeBSD)
7
+ifeq ($(ARCH), amd64)
7
+EXTRALIB	+= -lm %%LDFLAGS%%
8
+override ARCH=x86_64
8
 MD5SUM = md5 -r
9
+else ifeq ($(ARCH), powerpc64)
9
 endif
10
+override ARCH=power
10
 
11
@@ -889,9 +890,17 @@ SYMBOLSUFFIX =
12
 endif
13
 
14
 ifndef LIBNAMESUFFIX
15
+ifndef SMP
16
 LIBPREFIX = lib$(SYMBOLPREFIX)openblas$(SYMBOLSUFFIX)
17
 else
18
+LIBPREFIX = lib$(SYMBOLPREFIX)openblasp$(SYMBOLSUFFIX)
19
+endif
11
+endif
20
+else
12
+
21
+ifndef SMP
13
 NETLIB_LAPACK_DIR = $(TOPDIR)/lapack-netlib
22
 LIBPREFIX = lib$(SYMBOLPREFIX)openblas$(SYMBOLSUFFIX)_$(LIBNAMESUFFIX)
23
+else
24
+LIBPREFIX = lib$(SYMBOLPREFIX)openblasp$(SYMBOLSUFFIX)_$(LIBNAMESUFFIX)
25
+endif
26
 endif
27
 
14
 
28
 KERNELDIR	= $(TOPDIR)/kernel/$(ARCH)
15
 # Default C compiler
29
@@ -1020,24 +1029,8 @@ ifndef LIBSUFFIX
30
 LIBSUFFIX = a
31
 endif
32
 
33
-ifneq ($(DYNAMIC_ARCH), 1)
34
-ifndef SMP
35
-LIBNAME		= $(LIBPREFIX)_$(LIBCORE)$(REVISION).$(LIBSUFFIX)
36
-LIBNAME_P	= $(LIBPREFIX)_$(LIBCORE)$(REVISION)_p.$(LIBSUFFIX)
37
-else
38
-LIBNAME		= $(LIBPREFIX)_$(LIBCORE)p$(REVISION).$(LIBSUFFIX)
39
-LIBNAME_P	= $(LIBPREFIX)_$(LIBCORE)p$(REVISION)_p.$(LIBSUFFIX)
40
-endif
41
-else
42
-ifndef SMP
43
 LIBNAME		= $(LIBPREFIX)$(REVISION).$(LIBSUFFIX)
44
 LIBNAME_P	= $(LIBPREFIX)$(REVISION)_p.$(LIBSUFFIX)
45
-else
46
-LIBNAME		= $(LIBPREFIX)p$(REVISION).$(LIBSUFFIX)
47
-LIBNAME_P	= $(LIBPREFIX)p$(REVISION)_p.$(LIBSUFFIX)
48
-endif
49
-endif
50
-
51
 
52
 LIBDLLNAME   = $(LIBPREFIX).dll
53
 LIBSONAME    = $(LIBNAME:.$(LIBSUFFIX)=.so)
54
@@ -1067,7 +1060,7 @@ LIB_COMPONENTS = CBLAS
55
 endif
56
 
57
 export OSNAME
58
-export ARCH
59
+export ARCH_
60
 export CORE
61
 export LIBCORE
62
 export PGCPATH
(-)files/patch-c_check (-2 / +2 lines)
Lines 1-6 Link Here
1
--- c_check.orig	2015-10-27 20:44:50 UTC
1
--- c_check.orig	2019-04-29 17:22:19 UTC
2
+++ c_check
2
+++ c_check
3
@@ -235,7 +235,7 @@ open(CONFFILE, "> $config"  ) || die "Ca
3
@@ -320,7 +320,7 @@ open(CONFFILE, "> $config"  ) || die "Can't create $co
4
 # print $data, "\n";
4
 # print $data, "\n";
5
 
5
 
6
 print MAKEFILE "OSNAME=$os\n";
6
 print MAKEFILE "OSNAME=$os\n";
(-)files/patch-common__arm.h (-2 / +2 lines)
Lines 1-6 Link Here
1
--- common_arm.h.orig	2016-09-01 03:58:42 UTC
1
--- common_arm.h.orig	2018-08-30 22:07:48 UTC
2
+++ common_arm.h
2
+++ common_arm.h
3
@@ -93,6 +93,17 @@ static inline int blas_quickdivide(blasint x, blasint
3
@@ -93,6 +93,17 @@ static inline int blas_quickdivide(blasint x, blasint 
4
 
4
 
5
 #endif
5
 #endif
6
 
6
 
(-)files/patch-common__power.h (+29 lines)
Line 0 Link Here
1
--- common_power.h.orig	2019-06-24 17:16:36 UTC
2
+++ common_power.h
3
@@ -499,7 +499,7 @@ static inline int blas_quickdivide(blasint x, blasint 
4
 
5
 #if defined(ASSEMBLER) && !defined(NEEDPARAM)
6
 
7
-#ifdef OS_LINUX
8
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
9
 #ifndef __64BIT__
10
 #define PROLOGUE \
11
 	.section .text;\
12
@@ -784,7 +784,7 @@ Lmcount$lazy_ptr:
13
 
14
 #define HALT		mfspr	r0, 1023
15
 
16
-#ifdef OS_LINUX
17
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
18
 #if defined(PPC440) || defined(PPC440FP2)
19
 #undef  MAX_CPU_NUMBER
20
 #define MAX_CPU_NUMBER 1
21
@@ -829,7 +829,7 @@ Lmcount$lazy_ptr:
22
 #define MAP_ANONYMOUS MAP_ANON
23
 #endif
24
 
25
-#ifdef OS_LINUX
26
+#if defined(OS_LINUX) || defined(OS_FREEBSD)
27
 #ifndef __64BIT__
28
 #define FRAMESLOT(X) (((X) * 4) + 8)
29
 #else
(-)files/patch-cpuid__arm64.c (-2 / +2 lines)
Lines 1-6 Link Here
1
--- cpuid_arm64.c.orig	2016-09-01 03:58:42 UTC
1
--- cpuid_arm64.c.orig	2019-04-29 17:22:19 UTC
2
+++ cpuid_arm64.c
2
+++ cpuid_arm64.c
3
@@ -132,6 +132,8 @@ int detect(void)
3
@@ -180,6 +180,8 @@ int detect(void)
4
 
4
 
5
 
5
 
6
 	}
6
 	}
(-)files/patch-cpuid_sparc.c (-10 lines)
Lines 1-10 Link Here
1
--- cpuid_sparc.c.orig	2015-10-27 20:44:50 UTC
2
+++ cpuid_sparc.c
3
@@ -49,6 +49,7 @@ void get_subdirname(void){
4
 }
5
 
6
 void get_cpuconfig(void){
7
+  printf("#define SPARC\n");
8
   printf("#define V9\n");
9
   printf("#define DTB_DEFAULT_ENTRIES 32\n");
10
 }
(-)files/patch-cpuid_x86.c (-12 / +5 lines)
Lines 1-18 Link Here
1
--- cpuid_x86.c.orig	2017-07-24 04:03:35 UTC
1
--- cpuid_x86.c.orig	2019-04-29 17:22:19 UTC
2
+++ cpuid_x86.c
2
+++ cpuid_x86.c
3
@@ -1329,6 +1329,7 @@ int get_cpuname(void){
3
@@ -2051,6 +2051,8 @@ int get_coretype(void){
4
       case 8:
5
 	switch (model) {
6
 	case 1:
7
+	case 8:
8
 	  // AMD Ryzen
9
 	  if(support_avx())
10
 #ifndef NO_AVX2
11
@@ -1865,6 +1866,7 @@ int get_coretype(void){
12
       } else if (exfamily == 8) {
4
       } else if (exfamily == 8) {
13
 	switch (model) {
5
 	switch (model) {
14
 	case 1:
6
 	case 1:
15
+	case 8:
7
+	case 8:
8
+	case 8:
16
 	  // AMD Ryzen
9
 	  // AMD Ryzen
17
 	  if(support_avx())
10
 	case 8:
18
 #ifndef NO_AVX2
11
 	  // Ryzen 2		
(-)files/patch-driver_others_memory.c (-13 lines)
Lines 1-13 Link Here
1
Passing a priority level to constructor/destructor only works on GCC >= 4.3.0;
2
improve the upstream check so that the build works with base GCC.
3
--- driver/others/memory.c.orig	2016-04-12 19:29:19 UTC
4
+++ driver/others/memory.c
5
@@ -144,7 +144,7 @@ USE OF THIS SOFTWARE, EVEN IF ADVISED OF
6
 #if defined(_MSC_VER) && !defined(__clang__)
7
 #define CONSTRUCTOR __cdecl
8
 #define DESTRUCTOR __cdecl
9
-#elif (defined(OS_DARWIN) || defined(OS_SUNOS)) && defined(C_GCC)
10
+#elif (defined(OS_DARWIN) || defined(OS_SUNOS)) || (defined(C_GCC) && ((__GNUC__ == 4) && (__GNUC_MINOR__ < 3)))
11
 #define CONSTRUCTOR	__attribute__ ((constructor))
12
 #define DESTRUCTOR	__attribute__ ((destructor))
13
 #else
(-)files/patch-exports+Makefile (-18 lines)
Lines 1-18 Link Here
1
--- exports/Makefile.orig	2015-10-27 20:44:50 UTC
2
+++ exports/Makefile
3
@@ -140,6 +140,7 @@ endif
4
 #http://stackoverflow.com/questions/7656425/makefile-ifeq-logical-or
5
 ifeq ($(OSNAME), $(filter $(OSNAME),FreeBSD NetBSD))
6
 
7
+EXTRALIB += -lgfortran
8
 so : ../$(LIBSONAME)
9
 
10
 ifeq (, $(SYMBOLPREFIX)$(SYMBOLSUFFIX))
11
@@ -151,6 +152,7 @@ else
12
 endif
13
 	$(CC) $(CFLAGS) $(LDFLAGS)  -shared -o ../$(LIBSONAME) \
14
 	-Wl,--whole-archive $< -Wl,--no-whole-archive \
15
+	-Wl,-soname,$(LIBPREFIX).so.$(MAJOR_VERSION) \
16
 	$(FEXTRALIB) $(EXTRALIB)
17
 	$(CC) $(CFLAGS) $(LDFLAGS) -w -o linktest linktest.c ../$(LIBSONAME) $(FEXTRALIB) && echo OK.
18
 	rm -f linktest
(-)files/patch-f_check (-3 / +3 lines)
Lines 1-6 Link Here
1
--- f_check.orig	2015-10-27 20:44:50 UTC
1
--- f_check.orig	2018-12-02 22:41:17 UTC
2
+++ f_check
2
+++ f_check
3
@@ -261,7 +261,7 @@ if ($link ne "") {
3
@@ -288,7 +288,7 @@ if ($link ne "") {
4
 
4
 
5
     foreach $flags (@flags) {
5
     foreach $flags (@flags) {
6
 	if (
6
 	if (
Lines 9-15 Link Here
9
 	    && ($flags !~ /^-LIST:/)
9
 	    && ($flags !~ /^-LIST:/)
10
 	    && ($flags !~ /^-LANG:/)
10
 	    && ($flags !~ /^-LANG:/)
11
 	    ) {
11
 	    ) {
12
@@ -292,7 +292,7 @@ if ($link ne "") {
12
@@ -317,7 +317,7 @@ if ($link ne "") {
13
 	}
13
 	}
14
 
14
 
15
 	if (
15
 	if (
(-)files/patch-interface__ztrmv.c (-2 / +2 lines)
Lines 1-6 Link Here
1
--- interface/ztrmv.c.orig	2016-09-01 03:58:42 UTC
1
--- interface/ztrmv.c.orig	2019-04-29 17:22:19 UTC
2
+++ interface/ztrmv.c
2
+++ interface/ztrmv.c
3
@@ -242,7 +242,7 @@ void CNAME(enum CBLAS_ORDER order, enum 
3
@@ -245,7 +245,7 @@ void CNAME(enum CBLAS_ORDER order, enum CBLAS_UPLO Upl
4
   else
4
   else
5
 #endif
5
 #endif
6
   {
6
   {

Return to bug 231371