1 |
commit: d99c7de558a9e6cfdf97435955fcf96ac1509e8c |
2 |
Author: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> |
3 |
AuthorDate: Fri Oct 15 21:16:28 2021 +0000 |
4 |
Commit: Alessandro Barbieri <lssndrbarbieri <AT> gmail <DOT> com> |
5 |
CommitDate: Fri Oct 15 21:41:23 2021 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=d99c7de5 |
7 |
|
8 |
sys-cluster/sionlib: fix linking between libraries |
9 |
|
10 |
Closes: https://bugs.gentoo.org/817845 |
11 |
Package-Manager: Portage-3.0.28, Repoman-3.0.3 |
12 |
Signed-off-by: Alessandro Barbieri <lssndrbarbieri <AT> gmail.com> |
13 |
|
14 |
.../files/sionlib-build-shared-libraries.patch | 68 ++++++++++++---------- |
15 |
1 file changed, 38 insertions(+), 30 deletions(-) |
16 |
|
17 |
diff --git a/sys-cluster/sionlib/files/sionlib-build-shared-libraries.patch b/sys-cluster/sionlib/files/sionlib-build-shared-libraries.patch |
18 |
index c1e1c0181..178707fc4 100644 |
19 |
--- a/sys-cluster/sionlib/files/sionlib-build-shared-libraries.patch |
20 |
+++ b/sys-cluster/sionlib/files/sionlib-build-shared-libraries.patch |
21 |
@@ -9,14 +9,17 @@ |
22 |
else |
23 |
USER_HDRS = |
24 |
USER_LIBS = |
25 |
-@@ -58,12 +58,12 @@ |
26 |
+@@ -57,13 +57,15 @@ |
27 |
+ |
28 |
all: $(USER_LIBS) |
29 |
|
30 |
++../lib/lib$(SION_LIBNAME_SER).so : |
31 |
++ make -C ../lib lib$(SION_LIBNAME_SER).so |
32 |
|
33 |
-lib$(SION_LIBNAME_CXX_SER).a : $(SION_OBJS_SER) |
34 |
- $(C_AR) $(AFLAG) -rcs $@ $(SION_OBJS_SER) |
35 |
-+lib$(SION_LIBNAME_CXX_SER).so : $(SION_OBJS_SER) |
36 |
-+ $(CXX) $(LDFLAGS) -Wl,-soname,lib$(SION_LIBNAME_CXX_SER).so -shared -o $@ $(SION_OBJS_SER) |
37 |
++lib$(SION_LIBNAME_CXX_SER).so : $(SION_OBJS_SER) ../lib/lib$(SION_LIBNAME_SER).so |
38 |
++ $(CXX) $(LDFLAGS) -Wl,-soname,lib$(SION_LIBNAME_CXX_SER).so -shared -o $@ $(SION_OBJS_SER) -L../lib -l$(SION_LIBNAME_SER) |
39 |
@echo "*** $@ built" |
40 |
|
41 |
-lib$(SION_LIBNAME_CXX_MPI).a : $(SION_OBJS_MPI) |
42 |
@@ -26,7 +29,7 @@ |
43 |
@echo "*** $@ built" |
44 |
|
45 |
sion_cxx_base.o : |
46 |
-@@ -118,7 +118,7 @@ |
47 |
+@@ -118,7 +120,7 @@ |
48 |
done |
49 |
|
50 |
clean: |
51 |
@@ -46,12 +49,12 @@ |
52 |
else |
53 |
USER_HDRS = |
54 |
USER_MODS = |
55 |
-@@ -56,18 +56,24 @@ |
56 |
+@@ -56,39 +56,47 @@ |
57 |
SION_OBJS_F77_SER += sion_f77_omp.o sion_fortran_omp.o |
58 |
SION_OBJS_F90_SER += sion_f90_omp.o sion_fortran_omp.o |
59 |
USER_MODS += sion_f90_omp.mod |
60 |
-+ F77_SER_LIBS = $(OMPFLAG) -L../parlib -l$(SION_LIBNAME_OMP) |
61 |
-+ F90_SER_LIBS = $(OMPFLAG) -L../parlib -l$(SION_LIBNAME_OMP) |
62 |
++ F77_SER_LIBS = $(OMPFLAG) -L../parlib -l$(SION_LIBNAME_OMP) -L../lib -l$(SION_LIBNAME_GEN) |
63 |
++ F90_SER_LIBS = $(OMPFLAG) -L../parlib -l$(SION_LIBNAME_OMP) -L../lib -l$(SION_LIBNAME_GEN) |
64 |
endif |
65 |
|
66 |
ifeq ($(MPIENABLE),1) |
67 |
@@ -71,13 +74,15 @@ |
68 |
endif |
69 |
|
70 |
SION_DEPEND_OBJS=sion_fortran.o sion_fortran_omp.o sion_fortran_mpi.o sion_fortran_ompi.o sion_fortran_writeread_f77.o sion_fortran_writeread_f90.o sion_fortran_writeread_mpi_f77.o sion_fortran_writeread_mpi_f90.o |
71 |
-@@ -75,20 +81,20 @@ |
72 |
+ |
73 |
all: $(USER_LIBS) $(USER_MODS) |
74 |
|
75 |
++../lib/lib$(SION_LIBNAME_SER).so : |
76 |
++ make -C ../lib lib$(SION_LIBNAME_SER).so |
77 |
|
78 |
-lib$(SION_LIBNAME_F77_SER).a : $(SION_OBJS_F77_SER) |
79 |
- $(C_AR) $(AFLAG) -rcs $@ $(SION_OBJS_F77_SER) |
80 |
-+lib$(SION_LIBNAME_F77_SER).so : $(SION_OBJS_F77_SER) |
81 |
++lib$(SION_LIBNAME_F77_SER).so : $(SION_OBJS_F77_SER) ../lib/lib$(SION_LIBNAME_SER).so |
82 |
+ $(F77) $(LDFLAGS) -Wl,-soname,lib$(SION_LIBNAME_F77_SER).so -shared -o $@ $(SION_OBJS_F77_SER) $(F77_SER_LIBS) |
83 |
@echo "*** $@ built" |
84 |
|
85 |
@@ -89,7 +94,7 @@ |
86 |
|
87 |
-lib$(SION_LIBNAME_F90_SER).a : $(SION_OBJS_F90_SER) |
88 |
- $(C_AR) $(AFLAG) -rcs $@ $(SION_OBJS_F90_SER) |
89 |
-+lib$(SION_LIBNAME_F90_SER).so : $(SION_OBJS_F90_SER) |
90 |
++lib$(SION_LIBNAME_F90_SER).so : $(SION_OBJS_F90_SER) ../lib/lib$(SION_LIBNAME_SER).so |
91 |
+ $(F90) $(LDFLAGS) -Wl,-soname,lib$(SION_LIBNAME_F90_SER).so -shared -o $@ $(SION_OBJS_F90_SER) $(F90_SER_LIBS) |
92 |
@echo "*** $@ built" |
93 |
|
94 |
@@ -100,7 +105,7 @@ |
95 |
@echo "*** $@ built" |
96 |
|
97 |
# F77 interface |
98 |
-@@ -206,7 +212,7 @@ |
99 |
+@@ -206,7 +214,7 @@ |
100 |
done |
101 |
|
102 |
clean: |
103 |
@@ -111,23 +116,23 @@ |
104 |
# Dependencies |
105 |
--- a/src/lib/Makefile |
106 |
+++ b/src/lib/Makefile |
107 |
-@@ -66,26 +66,32 @@ |
108 |
+@@ -66,26 +66,31 @@ |
109 |
SION_CXX_HDR = sion_cxx.h |
110 |
endif |
111 |
|
112 |
+-USER_HDRS = sion.h sion_common.h sion_serial.h sion_const.h sion_datatypes.h sion_platform.h sion_debug.h $(SION_CXX_HDR) |
113 |
+-USER_LIBS = lib$(SION_LIBNAME_SER).a lib$(SION_LIBNAME_COM).a lib$(SION_LIBNAME_COM_LOCK_PTHREADS).a lib$(SION_LIBNAME_COM_LOCK_NONE).a |
114 |
+ifneq ($(PTHREADSUPPORT),"no") |
115 |
+LOCKLIB = $(SION_LIBNAME_COM_LOCK_PTHREADS) |
116 |
+else |
117 |
+LOCKLIB = $(SION_LIBNAME_COM_LOCK_NONE) |
118 |
+endif |
119 |
-+ |
120 |
- USER_HDRS = sion.h sion_common.h sion_serial.h sion_const.h sion_datatypes.h sion_platform.h sion_debug.h $(SION_CXX_HDR) |
121 |
--USER_LIBS = lib$(SION_LIBNAME_SER).a lib$(SION_LIBNAME_COM).a lib$(SION_LIBNAME_COM_LOCK_PTHREADS).a lib$(SION_LIBNAME_COM_LOCK_NONE).a |
122 |
-+USER_LIBS = lib$(SION_LIBNAME_SER).so lib$(SION_LIBNAME_COM).so lib$(SION_LIBNAME_COM_LOCK_PTHREADS).so lib$(SION_LIBNAME_COM_LOCK_NONE).so |
123 |
|
124 |
++USER_HDRS = sion.h sion_common.h sion_serial.h sion_const.h sion_datatypes.h sion_platform.h sion_debug.h $(SION_CXX_HDR) |
125 |
++USER_LIBS = lib$(SION_LIBNAME_SER).so lib$(SION_LIBNAME_COM).so lib$(SION_LIBNAME_COM_LOCK_PTHREADS).so lib$(SION_LIBNAME_COM_LOCK_NONE).so |
126 |
|
127 |
-all: lib$(SION_LIBNAME_COM).a lib$(SION_LIBNAME_SER).a lib$(SION_LIBNAME_COM_LOCK_PTHREADS).a lib$(SION_LIBNAME_COM_LOCK_NONE).a |
128 |
-+all: lib$(SION_LIBNAME_COM).so lib$(SION_LIBNAME_SER).so lib$(SION_LIBNAME_COM_LOCK_PTHREADS).so lib$(SION_LIBNAME_COM_LOCK_NONE).so |
129 |
++all: lib$(SION_LIBNAME_COM).so lib$(SION_LIBNAME_SER).so lib$(SION_LIBNAME_COM_LOCK_PTHREADS).so lib$(SION_LIBNAME_COM_LOCK_NONE).so |
130 |
|
131 |
-lib$(SION_LIBNAME_COM).a : $(SION_COMMON_OBJS) |
132 |
- $(C_AR) $(AFLAG) -rcs $@ $(SION_COMMON_OBJS) |
133 |
@@ -149,12 +154,12 @@ |
134 |
|
135 |
-lib$(SION_LIBNAME_SER).a : $(SION_SER_OBJS) |
136 |
- $(C_AR) $(AFLAG) -rcs $@ $(SION_SER_OBJS) |
137 |
-+lib$(SION_LIBNAME_SER).so : $(SION_SER_OBJS) |
138 |
-+ $(CC) $(LDFLAGS) -Wl,-soname,lib$(SION_LIBNAME_SER).so -shared -o $@ $(SION_SER_OBJS) |
139 |
++lib$(SION_LIBNAME_SER).so : $(SION_SER_OBJS) lib$(SION_LIBNAME_COM).so |
140 |
++ $(CC) $(LDFLAGS) -Wl,-soname,lib$(SION_LIBNAME_SER).so -shared -o $@ $(SION_SER_OBJS) -L. -l$(SION_LIBNAME_COM) |
141 |
@echo "*** $@ built" |
142 |
|
143 |
sion_lock_pthreads.o: sion_lock.c |
144 |
-@@ -178,7 +184,7 @@ |
145 |
+@@ -178,7 +183,7 @@ |
146 |
done |
147 |
|
148 |
clean: |
149 |
@@ -212,12 +217,15 @@ |
150 |
else |
151 |
LOCKCC =$(CC) |
152 |
LOCKCFLAGS=$(CFLAGS) |
153 |
-@@ -87,20 +89,20 @@ |
154 |
+@@ -87,20 +89,23 @@ |
155 |
|
156 |
all: $(USER_LIBS) |
157 |
|
158 |
-lib$(SION_LIBNAME_GEN).a : $(SION_OBJS_GEN) $(SION_OBJS_INTERNAL) |
159 |
- $(C_AR) $(AFLAG) -rcs $@ $(SION_OBJS_GEN) $(SION_OBJS_INTERNAL) |
160 |
++../lib/lib$(SION_LIBNAME_COM).so : |
161 |
++ make -C ../lib lib$(SION_LIBNAME_COM).so |
162 |
++ |
163 |
+lib$(SION_LIBNAME_GEN).so : $(SION_OBJS_GEN) $(SION_OBJS_INTERNAL) ../lib/lib$(SION_LIBNAME_COM).so |
164 |
+ $(CC) $(LDFLAGS) -Wl,-soname,lib$(SION_LIBNAME_GEN).so -shared -o $@ $(SION_OBJS_GEN) $(SION_OBJS_INTERNAL) $(LOCKLINK) -L../lib -l$(SION_LIBNAME_COM) |
165 |
@echo "*** $@ built" |
166 |
@@ -241,7 +249,7 @@ |
167 |
@echo "*** $@ built" |
168 |
|
169 |
sion_generic.o : sion_generic.c |
170 |
-@@ -224,7 +226,7 @@ |
171 |
+@@ -224,7 +229,7 @@ |
172 |
done |
173 |
|
174 |
clean: |
175 |
@@ -294,7 +302,7 @@ |
176 |
all: $(USER_UTILS) |
177 |
|
178 |
-partest: $(PARTEST_OBJS) ../parlib/lib$(SION_LIBNAME_MPI).a ../parlib/lib$(SION_LIBNAME_GEN).a ../lib/lib$(SION_LIBNAME_SER).a |
179 |
-+partest: $(PARTEST_OBJS) ../parlib/lib$(SION_LIBNAME_MPI).so ../parlib/lib$(SION_LIBNAME_GEN).so ../lib/lib$(SION_LIBNAME_SER).so |
180 |
++partest: $(PARTEST_OBJS) ../parlib/lib$(SION_LIBNAME_MPI).so ../parlib/lib$(SION_LIBNAME_GEN).so ../lib/lib$(SION_LIBNAME_SER).so |
181 |
$(MPICC) -o $@ $(PARTEST_OBJS) -L../lib -l$(SION_LIBNAME_SER) $(CMPILDFLAGS) $(MPILIB) |
182 |
|
183 |
-ompi_partest: $(PARTEST_OMPI_OBJS) ../parlib/lib$(SION_LIBNAME_OMPI).a ../parlib/lib$(SION_LIBNAME_OMP).a ../lib/lib$(SION_LIBNAME_SER).a |
184 |
@@ -308,8 +316,8 @@ |
185 |
|
186 |
-fpartest: fpartest.o ../parlib/lib$(SION_LIBNAME_MPI).a ../parlib/lib$(SION_LIBNAME_GEN).a ../lib/lib$(SION_LIBNAME_SER).a ../fortraninterface/lib$(SION_LIBNAME_F77_MPI).a ../fortraninterface/lib$(SION_LIBNAME_F77_SER).a |
187 |
- $(MPIF90) -o $@ fpartest.o -L../fortraninterface -l$(SION_LIBNAME_F77_MPI) -l$(SION_LIBNAME_F77_SER) $(FMPILDFLAGS) $(MPILIB) |
188 |
-+fpartest: fpartest.o ../parlib/lib$(SION_LIBNAME_MPI).so ../parlib/lib$(SION_LIBNAME_GEN).so ../lib/lib$(SION_LIBNAME_SER).so ../fortraninterface/lib$(SION_LIBNAME_F77_MPI).so ../fortraninterface/lib$(SION_LIBNAME_F77_SER).so |
189 |
-+ $(MPIF90) -o $@ fpartest.o -L../fortraninterface -l$(SION_LIBNAME_F77_MPI) -l$(SION_LIBNAME_F77_SER) $(FMPILDFLAGS) $(MPILIB) $(F77_MPI_LIBS) $(F77_SER_LIBS) |
190 |
++fpartest: fpartest.o ../parlib/lib$(SION_LIBNAME_MPI).so ../parlib/lib$(SION_LIBNAME_GEN).so ../lib/lib$(SION_LIBNAME_SER).so ../fortraninterface/lib$(SION_LIBNAME_F77_MPI).so ../fortraninterface/lib$(SION_LIBNAME_F77_SER).so |
191 |
++ $(MPIF90) -o $@ fpartest.o -L../fortraninterface -l$(SION_LIBNAME_F77_MPI) -l$(SION_LIBNAME_F77_SER) $(FMPILDFLAGS) $(MPILIB) $(F77_MPI_LIBS) $(F77_SER_LIBS) |
192 |
|
193 |
|
194 |
install: all |
195 |
@@ -345,24 +353,24 @@ |
196 |
$(CC) $(CFLAGS) -c sionversion.c |
197 |
|
198 |
-siondump: siondump.o ../lib/lib$(SION_LIBNAME_SER).a ../lib/lib$(SION_LIBNAME_COM).a ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).a |
199 |
-+siondump: siondump.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
200 |
++siondump: siondump.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
201 |
$(CC) -o $@ siondump.o $(LDFLAGS) |
202 |
cp siondump $(TOPDIR)/.. |
203 |
|
204 |
-siondefrag: siondefrag.o ../lib/lib$(SION_LIBNAME_SER).a ../lib/lib$(SION_LIBNAME_COM).a ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).a |
205 |
-+siondefrag: siondefrag.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
206 |
++siondefrag: siondefrag.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
207 |
$(CC) -o $@ siondefrag.o $(LDFLAGS) |
208 |
|
209 |
-sionsplit: sionsplit.o ../lib/lib$(SION_LIBNAME_SER).a ../lib/lib$(SION_LIBNAME_COM).a ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).a |
210 |
-+sionsplit: sionsplit.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
211 |
++sionsplit: sionsplit.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
212 |
$(CC) -o $@ sionsplit.o $(LDFLAGS) |
213 |
|
214 |
-sioncat: sioncat.o ../lib/lib$(SION_LIBNAME_SER).a ../lib/lib$(SION_LIBNAME_COM).a ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).a |
215 |
-+sioncat: sioncat.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
216 |
++sioncat: sioncat.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
217 |
$(CC) -o $@ sioncat.o $(LDFLAGS) |
218 |
|
219 |
-sionversion: sionversion.o ../lib/lib$(SION_LIBNAME_SER).a ../lib/lib$(SION_LIBNAME_COM).a ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).a |
220 |
-+sionversion: sionversion.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
221 |
++sionversion: sionversion.o ../lib/lib$(SION_LIBNAME_SER).so ../lib/lib$(SION_LIBNAME_COM).so ../lib/lib$(SION_LIBNAME_COM_LOCK_NONE).so |
222 |
$(CC) -o $@ sionversion.o $(LDFLAGS) |