File: 35-add-dpkg-buildflags.diff

package info (click to toggle)
mumble 1.3.4-4
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 43,608 kB
  • sloc: ansic: 150,503; cpp: 71,621; xml: 14,417; python: 2,207; perl: 1,225; sh: 1,075; makefile: 685; asm: 360; php: 344; cs: 55; objc: 42; ruby: 37
file content (41 lines) | stat: -rw-r--r-- 1,661 bytes parent folder | download | duplicates (2)
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
Description: Add dpkg-buildflags hardening flags via QMake
 https://wiki.debian.org/Hardening#Notes_for_packages_using_QMake
 The overlay intentionally disables the  "-z,now" linker flag in
 order to be able to resolve OpenGL symbols at runtime without
 linking against a specific libGL implementation.
Author: Christopher Knadle <Chris.Knadle@coredump.us>
Last-Updated: 2020-01-07

--- a/qmake/compiler.pri
+++ b/qmake/compiler.pri
@@ -223,6 +223,11 @@
 
 unix|win32-g++ {
 	DEFINES *= RESTRICT=__restrict__
+	# Add Debian hardening flags via dpkg-buildflags
+	QMAKE_CPPFLAGS *= $(shell dpkg-buildflags --get CPPFLAGS)
+	QMAKE_CFLAGS   *= $(shell dpkg-buildflags --get CFLAGS)
+	QMAKE_CXXFLAGS *= $(shell dpkg-buildflags --get CXXFLAGS)
+	QMAKE_LFLAGS   *= $(shell dpkg-buildflags --get LDFLAGS)
 	QMAKE_CFLAGS *= -fvisibility=hidden
 	QMAKE_CXXFLAGS *= -fvisibility=hidden
 	QMAKE_OBJECTIVE_CFLAGS *= -fvisibility=hidden
--- a/overlay_gl/overlay_gl.pro
+++ b/overlay_gl/overlay_gl.pro
@@ -24,6 +24,16 @@
   linux* {
     LIBS *= -lrt -ldl
   }
+  # Add Debian hardening flags via dpkg-buildflags
+  QMAKE_CPPFLAGS *= $(shell dpkg-buildflags --get CPPFLAGS)
+  QMAKE_CFLAGS   *= $(shell dpkg-buildflags --get CFLAGS)
+  QMAKE_CXXFLAGS *= $(shell dpkg-buildflags --get CXXFLAGS)
+  QMAKE_LFLAGS   *= $(shell dpkg-buildflags --get LDFLAGS)
+  #... but specifically remove "-z,now" because mumble-overlay (libmumble.so)
+  # needs to be able to resolve OpenGL symbols at runtime rather than linking
+  # to a specific libGL implementation
+  QMAKE_LFLAGS -= -z,now
+  #
   QMAKE_CFLAGS *= -fvisibility=hidden $(CFLAGS_ADD)
   QMAKE_LFLAGS -= -Wl,--no-undefined