Thu Nov 16 15:05:31 2017 UTC ()
More generic fix for CFLAGS and LDFLAGS for audio/ladspa

In the C plug-ins, mark the constructor and destructor functions as
such. While there, comment out a new target to run the tests; they are
broken, but not because of this modification. This allows us to use
cc(1) to link the plug-ins, thus working around a bug in the cwrappers
for ld(1).

Bump PKGREVISION, since this generates a different binary now that SSP
and FORTIFY are enabled.


(khorben)
diff -r1.13 -r1.14 pkgsrc/audio/ladspa/Makefile
diff -r1.11 -r1.12 pkgsrc/audio/ladspa/distinfo
diff -r1.5 -r1.6 pkgsrc/audio/ladspa/patches/patch-aa
diff -r0 -r1.1 pkgsrc/audio/ladspa/patches/patch-plugins_amp.c
diff -r0 -r1.1 pkgsrc/audio/ladspa/patches/patch-plugins_delay.c
diff -r0 -r1.1 pkgsrc/audio/ladspa/patches/patch-plugins_filter.c
diff -r0 -r1.1 pkgsrc/audio/ladspa/patches/patch-plugins_noise.c

cvs diff -r1.13 -r1.14 pkgsrc/audio/ladspa/Makefile (expand / switch to unified diff)

--- pkgsrc/audio/ladspa/Makefile 2017/07/15 18:12:51 1.13
+++ pkgsrc/audio/ladspa/Makefile 2017/11/16 15:05:31 1.14
@@ -1,27 +1,33 @@ @@ -1,27 +1,33 @@
1# $NetBSD: Makefile,v 1.13 2017/07/15 18:12:51 wiz Exp $ 1# $NetBSD: Makefile,v 1.14 2017/11/16 15:05:31 khorben Exp $
2 2
3DISTNAME= ladspa_sdk_1.13 3DISTNAME= ladspa_sdk_1.13
4PKGNAME= ${DISTNAME:S/_sdk_/-/} 4PKGNAME= ${DISTNAME:S/_sdk_/-/}
 5PKGREVISION= 1
5CATEGORIES= audio 6CATEGORIES= audio
6MASTER_SITES= http://www.ladspa.org/download/ 7MASTER_SITES= http://www.ladspa.org/download/
7EXTRACT_SUFX= .tgz 8EXTRACT_SUFX= .tgz
8 9
9MAINTAINER= pkgsrc-users@NetBSD.org 10MAINTAINER= pkgsrc-users@NetBSD.org
10HOMEPAGE= http://www.ladspa.org/ 11HOMEPAGE= http://www.ladspa.org/
11COMMENT= Linux Audio Developers Simple Plugin API 12COMMENT= Linux Audio Developers Simple Plugin API
12LICENSE= gnu-lgpl-v2.1 13LICENSE= gnu-lgpl-v2.1
13 14
14WRKSRC= ${WRKDIR}/ladspa_sdk/src 15WRKSRC= ${WRKDIR}/ladspa_sdk/src
15USE_TOOLS+= gmake 16USE_TOOLS+= gmake
16USE_LANGUAGES= c c++ 17USE_LANGUAGES= c c++
17 18
18MAKE_FILE= makefile 19MAKE_FILE= makefile
19 20
20BUILDLINK_LIBS.dl+= ${BUILDLINK_LDADD.dl} 21BUILDLINK_LIBS.dl+= ${BUILDLINK_LDADD.dl}
21 22
22INSTALLATION_DIRS+= bin include lib 23INSTALLATION_DIRS+= bin include lib
23REAL_LDFLAGS= ${LDFLAGS:S/-Wl,-z,/-z /g} 24
24MAKEFLAGS+= REAL_LDFLAGS=${REAL_LDFLAGS:Q} 25MAKE_FLAGS+= CFLAGS=${CFLAGS:Q}
 26MAKE_FLAGS+= LDFLAGS=${LDFLAGS:Q}
 27
 28#XXX does not work (No rule to make target 'targets')
 29#do-test:
 30# cd ${WRKSRC} && && ${BUILD_MAKE_CMD} test
25 31
26.include "../../mk/dlopen.buildlink3.mk" 32.include "../../mk/dlopen.buildlink3.mk"
27.include "../../mk/bsd.pkg.mk" 33.include "../../mk/bsd.pkg.mk"

cvs diff -r1.11 -r1.12 pkgsrc/audio/ladspa/distinfo (expand / switch to unified diff)

--- pkgsrc/audio/ladspa/distinfo 2017/07/15 18:12:51 1.11
+++ pkgsrc/audio/ladspa/distinfo 2017/11/16 15:05:31 1.12
@@ -1,9 +1,13 @@ @@ -1,9 +1,13 @@
1$NetBSD: distinfo,v 1.11 2017/07/15 18:12:51 wiz Exp $ 1$NetBSD: distinfo,v 1.12 2017/11/16 15:05:31 khorben Exp $
2 2
3SHA1 (ladspa_sdk_1.13.tgz) = 2b69e28afb62c0d97943124f48ed82de796f83ed 3SHA1 (ladspa_sdk_1.13.tgz) = 2b69e28afb62c0d97943124f48ed82de796f83ed
4RMD160 (ladspa_sdk_1.13.tgz) = e9eeae8edd24a6890fac3e34c4b55f844f44f8a0 4RMD160 (ladspa_sdk_1.13.tgz) = e9eeae8edd24a6890fac3e34c4b55f844f44f8a0
5SHA512 (ladspa_sdk_1.13.tgz) = a1dab807fda58e08869d3f519be5fa91c394690eb13006fbe7f20b332548e4676b32b01273f5695bf36c8da72190c07618662a76d50f991b3f05068ac2b346ef 5SHA512 (ladspa_sdk_1.13.tgz) = a1dab807fda58e08869d3f519be5fa91c394690eb13006fbe7f20b332548e4676b32b01273f5695bf36c8da72190c07618662a76d50f991b3f05068ac2b346ef
6Size (ladspa_sdk_1.13.tgz) = 70540 bytes 6Size (ladspa_sdk_1.13.tgz) = 70540 bytes
7SHA1 (patch-aa) = bdfb2e82d2f7800a16275cb521f42f20799d998d 7SHA1 (patch-aa) = 721eddb7269f2c20eecc45b64a293b44395a3fc3
8SHA1 (patch-ab) = 1ad33baf6dcc4633e1459b6585cc8ccada57831f 8SHA1 (patch-ab) = 1ad33baf6dcc4633e1459b6585cc8ccada57831f
9SHA1 (patch-ac) = 40108e5e4fdba9b2be322d0de532a97322d22325 9SHA1 (patch-ac) = 40108e5e4fdba9b2be322d0de532a97322d22325
 10SHA1 (patch-plugins_amp.c) = e0336ff7fe078aa6b4e6b3d25b21b70ac6dc127d
 11SHA1 (patch-plugins_delay.c) = ee551be35938b69d7b535640858d67ceeb261ee0
 12SHA1 (patch-plugins_filter.c) = 79b050f99a68ebd87e76f552054592331c31828e
 13SHA1 (patch-plugins_noise.c) = 9e996f5f9ad4e39974cafea52af143e9db4603f7

cvs diff -r1.5 -r1.6 pkgsrc/audio/ladspa/patches/Attic/patch-aa (expand / switch to unified diff)

--- pkgsrc/audio/ladspa/patches/Attic/patch-aa 2017/07/15 18:12:51 1.5
+++ pkgsrc/audio/ladspa/patches/Attic/patch-aa 2017/11/16 15:05:31 1.6
@@ -1,107 +1,114 @@ @@ -1,107 +1,114 @@
1$NetBSD: patch-aa,v 1.5 2017/07/15 18:12:51 wiz Exp $ 1$NetBSD: patch-aa,v 1.6 2017/11/16 15:05:31 khorben Exp $
 2
 3* Fix the destination directories
 4* Use cc(1) to link the plug-ins
 5* Add support for CFLAGS and LDFLAGS
2 6
3--- makefile.orig 2007-11-06 10:42:45.000000000 +0000 7--- makefile.orig 2007-11-06 10:42:45.000000000 +0000
4+++ makefile 8+++ makefile
5@@ -4,9 +4,9 @@ 9@@ -4,9 +4,9 @@
6 # 10 #
7 # Change these if you want to install somewhere else. 11 # Change these if you want to install somewhere else.
8  12
9-INSTALL_PLUGINS_DIR = /usr/lib/ladspa/ 13-INSTALL_PLUGINS_DIR = /usr/lib/ladspa/
10-INSTALL_INCLUDE_DIR = /usr/include/ 14-INSTALL_INCLUDE_DIR = /usr/include/
11-INSTALL_BINARY_DIR = /usr/bin/ 15-INSTALL_BINARY_DIR = /usr/bin/
12+INSTALL_PLUGINS_DIR = ${PREFIX}/lib/ladspa/ 16+INSTALL_PLUGINS_DIR = ${PREFIX}/lib/ladspa/
13+INSTALL_INCLUDE_DIR = ${PREFIX}/include/ 17+INSTALL_INCLUDE_DIR = ${PREFIX}/include/
14+INSTALL_BINARY_DIR = ${PREFIX}/bin/ 18+INSTALL_BINARY_DIR = ${PREFIX}/bin/
15  19
16 ############################################################################### 20 ###############################################################################
17 # 21 #
18@@ -14,8 +14,8 @@ INSTALL_BINARY_DIR = /usr/bin/ 22@@ -14,9 +14,11 @@ INSTALL_BINARY_DIR = /usr/bin/
19 # 23 #
20  24
21 INCLUDES = -I. 25 INCLUDES = -I.
22-LIBRARIES = -ldl -lm 26-LIBRARIES = -ldl -lm
23-CFLAGS = $(INCLUDES) -Wall -Werror -O3 -fPIC 27-CFLAGS = $(INCLUDES) -Wall -Werror -O3 -fPIC
24+LIBRARIES = $(DL_LIBS) -lm 28+CPPFLAGS = $(INCLUDES)
25+CFLAGS = $(INCLUDES) -Wall -Werror -fPIC 29+CFLAGS = -Wall -Werror -fPIC
26 CXXFLAGS = $(CFLAGS) 30 CXXFLAGS = $(CFLAGS)
 31+LIBRARIES = $(DL_LIBS) -lm
 32+LDFLAGS =
27 PLUGINS = ../plugins/amp.so \ 33 PLUGINS = ../plugins/amp.so \
28 ../plugins/delay.so \ 34 ../plugins/delay.so \
29@@ -25,8 +25,8 @@ PLUGINS = ../plugins/amp.so \ 35 ../plugins/filter.so \
 36@@ -25,8 +27,8 @@ PLUGINS = ../plugins/amp.so \
30 PROGRAMS = ../bin/analyseplugin \ 37 PROGRAMS = ../bin/analyseplugin \
31 ../bin/applyplugin \ 38 ../bin/applyplugin \
32 ../bin/listplugins 39 ../bin/listplugins
33-CC = cc 40-CC = cc
34-CPP = c++ 41-CPP = c++
35+#CC = cc 42+#CC = cc
36+#CPP = c++ 43+#CPP = c++
37  44
38 ############################################################################### 45 ###############################################################################
39 # 46 #
40@@ -34,12 +34,12 @@ CPP = c++ 47@@ -34,12 +36,12 @@ CPP = c++
41 # 48 #
42  49
43 ../plugins/%.so: plugins/%.c ladspa.h 50 ../plugins/%.so: plugins/%.c ladspa.h
44- $(CC) $(CFLAGS) -o plugins/$*.o -c plugins/$*.c 51- $(CC) $(CFLAGS) -o plugins/$*.o -c plugins/$*.c
45- $(LD) -o ../plugins/$*.so plugins/$*.o -shared 52- $(LD) -o ../plugins/$*.so plugins/$*.o -shared
46+ $(CC) $(CFLAGS) $(LDFLAGS) -o plugins/$*.o -c plugins/$*.c 53+ $(CC) $(CPPFLAGS) $(CFLAGS) -o plugins/$*.o -c plugins/$*.c
47+ $(LD) $(REAL_LDFLAGS) -o ../plugins/$*.so plugins/$*.o -shared 54+ $(CC) -shared $(LDFLAGS) -o ../plugins/$*.so plugins/$*.o
48  55
49 ../plugins/%.so: plugins/%.cpp ladspa.h 56 ../plugins/%.so: plugins/%.cpp ladspa.h
50- $(CPP) $(CXXFLAGS) -o plugins/$*.o -c plugins/$*.cpp 57- $(CPP) $(CXXFLAGS) -o plugins/$*.o -c plugins/$*.cpp
51- $(CPP) -o ../plugins/$*.so plugins/$*.o -shared 58- $(CPP) -o ../plugins/$*.so plugins/$*.o -shared
52+ $(CXX) $(CXXFLAGS) -o plugins/$*.o -c plugins/$*.cpp 59+ $(CXX) $(CPPFLAGS) $(CXXFLAGS) -o plugins/$*.o -c plugins/$*.cpp
53+ $(CXX) $(LDFLAGS) -o ../plugins/$*.so plugins/$*.o -shared 60+ $(CXX) -shared $(LDFLAGS) -o ../plugins/$*.so plugins/$*.o
54  61
55 ############################################################################### 62 ###############################################################################
56 # 63 #
57@@ -58,13 +58,13 @@ test: /tmp/test.wav ../snd/noise.wav alw 64@@ -58,13 +60,13 @@ test: /tmp/test.wav ../snd/noise.wav alw
58 -sndfile-play /tmp/test.wav 65 -sndfile-play /tmp/test.wav
59 @echo Test complete. 66 @echo Test complete.
60  67
61-install: targets 68-install: targets
62- -mkdirhier $(INSTALL_PLUGINS_DIR) 69- -mkdirhier $(INSTALL_PLUGINS_DIR)
63- -mkdirhier $(INSTALL_INCLUDE_DIR) 70- -mkdirhier $(INSTALL_INCLUDE_DIR)
64- -mkdirhier $(INSTALL_BINARY_DIR) 71- -mkdirhier $(INSTALL_BINARY_DIR)
65- cp ../plugins/* $(INSTALL_PLUGINS_DIR) 72- cp ../plugins/* $(INSTALL_PLUGINS_DIR)
66- cp ladspa.h $(INSTALL_INCLUDE_DIR) 73- cp ladspa.h $(INSTALL_INCLUDE_DIR)
67- cp ../bin/* $(INSTALL_BINARY_DIR) 74- cp ../bin/* $(INSTALL_BINARY_DIR)
68+install: 75+install:
69+ $(BSD_INSTALL_DATA_DIR) ${DESTDIR}$(INSTALL_PLUGINS_DIR) 76+ $(BSD_INSTALL_DATA_DIR) ${DESTDIR}$(INSTALL_PLUGINS_DIR)
70+ $(BSD_INSTALL_DATA_DIR) ${DESTDIR}$(INSTALL_INCLUDE_DIR) 77+ $(BSD_INSTALL_DATA_DIR) ${DESTDIR}$(INSTALL_INCLUDE_DIR)
71+ $(BSD_INSTALL_DATA_DIR) ${DESTDIR}$(INSTALL_BINARY_DIR) 78+ $(BSD_INSTALL_DATA_DIR) ${DESTDIR}$(INSTALL_BINARY_DIR)
72+ $(BSD_INSTALL_DATA) ../plugins/* ${DESTDIR}$(INSTALL_PLUGINS_DIR) 79+ $(BSD_INSTALL_DATA) ../plugins/* ${DESTDIR}$(INSTALL_PLUGINS_DIR)
73+ $(BSD_INSTALL_DATA) ladspa.h ${DESTDIR}$(INSTALL_INCLUDE_DIR) 80+ $(BSD_INSTALL_DATA) ladspa.h ${DESTDIR}$(INSTALL_INCLUDE_DIR)
74+ $(BSD_INSTALL_PROGRAM) ../bin/* ${DESTDIR}$(INSTALL_BINARY_DIR) 81+ $(BSD_INSTALL_PROGRAM) ../bin/* ${DESTDIR}$(INSTALL_BINARY_DIR)
75  82
76 /tmp/test.wav: targets ../snd/noise.wav 83 /tmp/test.wav: targets ../snd/noise.wav
77 ../bin/listplugins 84 ../bin/listplugins
78@@ -82,7 +82,7 @@ install: targets 85@@ -82,7 +84,7 @@ install: targets
79 ../plugins/delay.so delay_5s 1 0.1 \ 86 ../plugins/delay.so delay_5s 1 0.1 \
80 ../plugins/amp.so amp_mono 4 \ 87 ../plugins/amp.so amp_mono 4 \
81  88
82-targets: $(PLUGINS) $(PROGRAMS) 89-targets: $(PLUGINS) $(PROGRAMS)
83+all: $(PLUGINS) $(PROGRAMS) 90+all: $(PLUGINS) $(PROGRAMS)
84  91
85 ############################################################################### 92 ###############################################################################
86 # 93 #
87@@ -90,17 +90,17 @@ targets: $(PLUGINS) $(PROGRAMS) 94@@ -90,17 +92,17 @@ targets: $(PLUGINS) $(PROGRAMS)
88 # 95 #
89  96
90 ../bin/applyplugin: applyplugin.o load.o default.o 97 ../bin/applyplugin: applyplugin.o load.o default.o
91- $(CC) $(CFLAGS) $(LIBRARIES) \ 98- $(CC) $(CFLAGS) $(LIBRARIES) \
92+ $(CC) $(CFLAGS) $(LDFLAGS) $(LIBRARIES) \ 99+ $(CC) $(LDFLAGS) $(LIBRARIES) \
93 -o ../bin/applyplugin \ 100 -o ../bin/applyplugin \
94 applyplugin.o load.o default.o 101 applyplugin.o load.o default.o
95  102
96 ../bin/analyseplugin: analyseplugin.o load.o default.o 103 ../bin/analyseplugin: analyseplugin.o load.o default.o
97- $(CC) $(CFLAGS) $(LIBRARIES) \ 104- $(CC) $(CFLAGS) $(LIBRARIES) \
98+ $(CC) $(CFLAGS) $(LDFLAGS) $(LIBRARIES) \ 105+ $(CC) $(LDFLAGS) $(LIBRARIES) \
99 -o ../bin/analyseplugin \ 106 -o ../bin/analyseplugin \
100 analyseplugin.o load.o default.o 107 analyseplugin.o load.o default.o
101  108
102 ../bin/listplugins: listplugins.o search.o 109 ../bin/listplugins: listplugins.o search.o
103- $(CC) $(CFLAGS) $(LIBRARIES) \ 110- $(CC) $(CFLAGS) $(LIBRARIES) \
104+ $(CC) $(CFLAGS) $(LDFLAGS) $(LIBRARIES) \ 111+ $(CC) $(LDFLAGS) $(LIBRARIES) \
105 -o ../bin/listplugins \ 112 -o ../bin/listplugins \
106 listplugins.o search.o 113 listplugins.o search.o
107  114

File Added: pkgsrc/audio/ladspa/patches/Attic/patch-plugins_amp.c
$NetBSD: patch-plugins_amp.c,v 1.1 2017/11/16 15:05:31 khorben Exp $

Mark the constructor and destructor functions as such.

--- plugins/amp.c.orig	2002-07-06 17:20:19.000000000 +0000
+++ plugins/amp.c
@@ -152,7 +152,8 @@ LADSPA_Descriptor * g_psStereoDescriptor
 
 /* _init() is called automatically when the plugin library is first
    loaded. */
-void 
+static void _init() __attribute__((constructor));
+static void 
 _init() {
 
   char ** pcPortNames;
@@ -335,7 +336,8 @@ deleteDescriptor(LADSPA_Descriptor * psD
 /*****************************************************************************/
 
 /* _fini() is called automatically when the library is unloaded. */
-void
+static void _fini() __attribute__((destructor));
+static void
 _fini() {
   deleteDescriptor(g_psMonoDescriptor);
   deleteDescriptor(g_psStereoDescriptor);

File Added: pkgsrc/audio/ladspa/patches/Attic/patch-plugins_delay.c
$NetBSD: patch-plugins_delay.c,v 1.1 2017/11/16 15:05:31 khorben Exp $

Mark the constructor and destructor functions as such.

--- plugins/delay.c.orig	2002-07-06 17:21:20.000000000 +0000
+++ plugins/delay.c
@@ -228,7 +228,8 @@ LADSPA_Descriptor * g_psDescriptor = NUL
 
 /* _init() is called automatically when the plugin library is first
    loaded. */
-void 
+static void _init() __attribute__((constructor));
+static void 
 _init() {
 
   char ** pcPortNames;
@@ -322,7 +323,8 @@ _init() {
 /*****************************************************************************/
 
 /* _fini() is called automatically when the library is unloaded. */
-void 
+static void _fini() __attribute__((destructor));
+static void 
 _fini() {
   long lIndex;
   if (g_psDescriptor) {

File Added: pkgsrc/audio/ladspa/patches/Attic/patch-plugins_filter.c
$NetBSD: patch-plugins_filter.c,v 1.1 2017/11/16 15:05:31 khorben Exp $

Mark the constructor and destructor functions as such.

--- plugins/filter.c.orig	2002-07-06 17:22:01.000000000 +0000
+++ plugins/filter.c
@@ -252,7 +252,8 @@ LADSPA_Descriptor * g_psHPFDescriptor = 
 
 /* _init() is called automatically when the plugin library is first
    loaded. */
-void 
+static void _init() __attribute__((constructor));
+static void 
 _init() {
 
   char ** pcPortNames;
@@ -431,7 +432,8 @@ deleteDescriptor(LADSPA_Descriptor * psD
 /*****************************************************************************/
 
 /* _fini() is called automatically when the library is unloaded. */
-void
+static void _fini() __attribute__((destructor));
+static void
 _fini() {
   deleteDescriptor(g_psLPFDescriptor);
   deleteDescriptor(g_psHPFDescriptor);

File Added: pkgsrc/audio/ladspa/patches/Attic/patch-plugins_noise.c
$NetBSD: patch-plugins_noise.c,v 1.1 2017/11/16 15:05:31 khorben Exp $

Mark the constructor and destructor functions as such.

--- plugins/noise.c.orig	2002-07-06 17:22:34.000000000 +0000
+++ plugins/noise.c
@@ -142,7 +142,8 @@ LADSPA_Descriptor * g_psDescriptor;
 
 /* _init() is called automatically when the plugin library is first
    loaded. */
-void 
+static void _init() __attribute__((constructor));
+static void 
 _init() {
 
   char ** pcPortNames;
@@ -219,7 +220,8 @@ _init() {
 /*****************************************************************************/
 
 /* _fini() is called automatically when the library is unloaded. */
-void 
+static void _fini() __attribute__((destructor));
+static void 
 _fini() {
   long lIndex;
   if (g_psDescriptor) {