File: shlib-link.patch

package info (click to toggle)
cmor 3.13.0-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 16,948 kB
  • sloc: ansic: 28,083; f90: 13,872; python: 12,399; sh: 3,731; makefile: 112
file content (64 lines) | stat: -rw-r--r-- 2,787 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
Author: Alastair McKinstry <mckinstry@debian.org>
Description: Bugfix to link libcmor.so.2 against -lossp-uuid
Last-Updated: 2016-12-20
Forwarded: no

--- a/Makefile.in
+++ b/Makefile.in
@@ -44,11 +44,14 @@
 
 # Library name
 LIBNAME=libcmor.a
+SONAME := libcmor.so.2
+SHLIBFLAGS:= -Wl,-O1 -Wl,-soname,$(SONAME) -Wl,--version-script,cmor.ver -lgfortran -lm
 
 # Library sources
 LIBSOURCES=@LIBSOURCES@
 LIBSOURCESCV=@LIBSOURCESCV@
 LIBFSOURCES=@LIBFSOURCES@
+LIBSOURCESSO=$(patsubst Src/_cmormodule.c,,$(LIBSOURCES))
 
 LIBFILES=@LIBFILES@
 
@@ -58,14 +61,31 @@
 # Temporary Files
 TMPFILES=*~ $(LIBFILES) *.mod a.out *.stb Test/*.nc Test/IPCC_Fourth_Assessment *.LOG* *.dSYM Test/IPCC Test/CMIP5 CMIP5
 DISTFILES=libcmor.a
-DEPEND= makedepend -c ${DEBUG} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${JSONCFLAGS} ${UUIDFLAGS} ${ZFLAGS}
+DEPEND= makedepend -c ${DEBUG} ${CFLAGS} ${USERCFLAGS}  ${NCCFLAGS} ${UDUNITS2FLAGS} ${JSONCFLAGS} ${UUIDLDFLAGS} ${ZFLAGS}
 UNAME := $(shell uname)
 
 CCOMPILE=${CC} -c ${DEBUG} ${MACROS} ${CPPFLAGS} ${CFLAGS} ${USERCFLAGS} \
 		${NCCFLAGS} ${UDUNITS2FLAGS} ${JSONCFLAGS} ${UUIDFLAGS} ${ZFLAGS}
 
+PIC_OBJS = $(patsubst %.c, %.pic_o, $(LIBSOURCESSO)) $(patsubst %.f90,%.pic_o, $(LIBFSOURCES))
+
 all:    cmor
 	@echo
+
+%.pic_o: %.c
+	@CC@ @CPPFLAGS@  -I/usr/include/ossp -fstack-protector --param=ssp-buffer-size=4 \
+		-Wformat -Wformat-security -Werror=format-security  -D_FORTIFY_SOURCE=2 \
+		-fPIC -c -o $@  @DEBUG@ @MACROS@ @CFLAGS@  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @ZFLAGS@  $<
+
+%.pic_o: %.f90
+	@FC@ -c -o $@ -fPIC @FCFLAGS@ @DEBUG@ @MACROS@  $<
+
+shlib $(SONAME):   $(PIC_OBJS)
+	$(CC) -shared  -o $(SONAME) $(LDFLAGS) $(SHLIBFLAGS)  $(PIC_OBJS)  @NCCFLAGS@ @UDUNITS2FLAGS@ @UUIDLDFLAGS@ @ZFLAGS@ 
+install_shlib: $(SONAME)
+	mkdir -p $(DESTDIR)@prefix@/lib
+	cp -p $(SONAME) $(DESTDIR)@prefix@/lib
+
 depend:  $(LIBSOURCES)
 	${DEPEND}  $(LIBSOURCES)
 cmor.o: Src/cmor.c include/cmor.h include/cmor_func_def.h
@@ -287,7 +307,7 @@
 
 test_case:
 	@echo "${OK_COLOR}Testing: "${TEST_NAME}" with input file: ${INPUT_FILE}${NO_COLOR}"
-	@rm -f ./${TEST_NAME} 2>/dev/null ; ${FC} ${USERFFLAGS} ${FCFLAGS} ${DEBUG}  Test/${TEST_NAME}.f90 -L${PREFIX}/lib -L. -lcmor ${NCCFLAGS} ${FNCLDFLAGS} ${FUDUNITS2LDFLAGS} ${UDUNITS2FLAGS} ${FJSONCLDFLAGS} ${JSONCFLAGS} ${FUUIDLDFLAGS} ${UUIDFLAGS} ${ZFLAGS} ${FZLDFLAGS} -o ${TEST_NAME} ;
+	@rm -f ./${TEST_NAME} 2>/dev/null ; ${FC} ${USERFFLAGS} ${FCFLAGS} ${DEBUG}  Test/${TEST_NAME}.f90 -L${PREFIX}/lib -L. -lcmor ${NCCFLAGS} ${FNCLDFLAGS} ${FUDUNITS2LDFLAGS} ${UDUNITS2FLAGS} ${FJSONCLDFLAGS} ${JSONCFLAGS} ${FUUIDLDFLAGS} ${UUIDLDFLAGS} ${ZFLAGS} ${FZLDFLAGS} -o ${TEST_NAME} ;
 	@./${TEST_NAME} ${VERB} < ${INPUT_FILE} ;
 	@ rm ./${TEST_NAME}
 ifeq (@MAKEDEPPYTHON@,python)