summaryrefslogtreecommitdiff
path: root/dev-util/strace/files/strace-5.5-static.patch
blob: da57ee0f9388528722933f1d9cd6fb649c99b7d5 (plain)
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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
--- /Makefile.am
+++ /Makefile.am
@@ -379,7 +379,6 @@
 if USE_LIBDW
 strace_SOURCES += unwind-libdw.c
 strace_CPPFLAGS += $(libdw_CPPFLAGS)
-strace_CFLAGS += $(libdw_CFLAGS)
 strace_LDFLAGS += $(libdw_LDFLAGS)
 strace_LDADD += $(libdw_LIBS)
 endif
--- /configure.ac
+++ /configure.ac
@@ -48,6 +48,15 @@
 AC_DEFINE([MANPAGE_DATE], "[manpage_date]", [Date])
 AC_SUBST([MANPAGE_DATE], [manpage_date])
 
+AC_ARG_ENABLE([static],
+	      [AS_HELP_STRING([--enable-static],
+			      [link strace statically])],
+	      [], [enable_static=no])
+if test "$enable_static" = "yes"; then
+	# Add -pthread since strace wants -lrt for timer_create, and -lrt uses -lpthread.
+	LDFLAGS="$LDFLAGS -pthread -static"
+fi
+
 AC_C_BIGENDIAN
 
 AC_MSG_CHECKING([for supported architecture])
--- /m4/st_libdw.m4
+++ /m4/st_libdw.m4
@@ -8,7 +8,6 @@
 AC_DEFUN([st_ARG_LIBDW], [dnl
 
 : ${libdw_CPPFLAGS=}
-: ${libdw_CFLAGS=}
 : ${libdw_LDFLAGS=}
 : ${libdw_LIBS=}
 
@@ -34,48 +33,14 @@
 have_libdw=
 
 AS_IF([test "x$with_libdw" != xno && test "x$use_unwinder" = x],
-      [saved_CPPFLAGS="$CPPFLAGS"
-       saved_CFLAGS="$CFLAGS"
-       CPPFLAGS="$CPPFLAGS $libdw_CPPFLAGS"
-       CFLAGS="$CFLAGS $libdw_CFLAGS"
-
-       AC_CHECK_HEADERS([elfutils/libdwfl.h],
-			[AC_CHECK_LIB([dw], [dwfl_linux_proc_attach],
-				      [libdw_LIBS="-ldw $libdw_LIBS"
-				       AC_CACHE_CHECK([for elfutils version],
-						      [st_cv_ELFUTILS_VERSION],
-						      [[st_cv_ELFUTILS_VERSION="$(echo _ELFUTILS_VERSION |
-										  $CPP $CPPFLAGS -P -imacros elfutils/version.h - |
-										  grep '^[0-9]')"
-							test -n "$st_cv_ELFUTILS_VERSION" ||
-								st_cv_ELFUTILS_VERSION=0
-						      ]]
-						     )
-				       AS_IF([test "$st_cv_ELFUTILS_VERSION" -ge 164],
-					     [have_libdw=yes],
-					     [AS_IF([test "x$with_libdw" = xyes],
-						    [AC_MSG_ERROR([elfutils version >= 164 is required for stack tracing support])],
-						    [AC_MSG_WARN([elfutils version >= 164 is required for stack tracing support])]
-						   )
-					     ]
-					    )
-				      ],
-				      [AS_IF([test "x$with_libdw" = xyes],
-					     [AC_MSG_FAILURE([failed to find dwfl_linux_proc_attach in libdw])],
-					    )
-				      ],
-				      [$libdw_LDFLAGS $libdw_LIBS]
-				     )
-			],
-			[AS_IF([test "x$with_libdw" = xyes],
-			       [AC_MSG_FAILURE([failed to find elfutils/libdwfl.h])]
-			      )
-			]
-		       )
-
-       CFLAGS="$saved_CFLAGS"
-       CPPFLAGS="$saved_CPPFLAGS"
-      ]
+      [if test "$enable_static" = "yes"; then
+           PKG_CHECK_MODULES_STATIC([LIBDW], [libdw >= 0.164])
+       else
+           PKG_CHECK_MODULES([LIBDW], [libdw >= 0.164])
+       fi
+       have_libdw=yes
+       libdw_CPPFLAGS="$LIBDW_CFLAGS"
+       libdw_LIBS="$LIBDW_LIBS"]
 )
 
 AS_IF([test "x$have_libdw" = xyes],
@@ -84,7 +49,6 @@
 		 [Whether to use libdw for stack tracing]
 		)
        AC_SUBST(libdw_CPPFLAGS)
-       AC_SUBST(libdw_CFLAGS)
        AC_SUBST(libdw_LDFLAGS)
        AC_SUBST(libdw_LIBS)
       ]
--- /m4/st_libunwind.m4
+++ /m4/st_libunwind.m4
@@ -28,64 +28,14 @@
 libunwind_LIBS=
 
 AS_IF([test "x$with_libunwind" != xno && test "x$use_unwinder" = x],
-      [saved_CPPFLAGS="$CPPFLAGS"
-       CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS"
-
-       AC_CHECK_HEADERS([libunwind-ptrace.h],
-	 [saved_LDFLAGS="$LDFLAGS"
-	  LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
-
-	  AC_CHECK_LIB([unwind], [backtrace],
-	    [libunwind_LIBS="-lunwind $libunwind_LIBS"
-
-	     AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic])
-	     saved_LIBS="$LIBS"
-	     LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
-
-	     AC_LINK_IFELSE(
-	       [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]],
-				[[return !unw_create_addr_space(0, 0)]])
-	       ],
-	       [AC_MSG_RESULT([yes])
-		libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
-
-		AC_CHECK_LIB([unwind-ptrace], [_UPT_create],
-		  [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
-		   use_unwinder=libunwind
-		  ],
-		  [if test "x$with_libunwind" != xcheck; then
-		     AC_MSG_FAILURE([failed to find _UPT_create in libunwind-ptrace])
-		   fi
-		  ],
-		  [$libunwind_LIBS]
-		)
-	       ],
-	       [AC_MSG_RESULT([no])
-		if test "x$with_libunwind" != xcheck; then
-		  AC_MSG_FAILURE([failed to find unw_create_addr_space in libunwind-generic])
-		fi
-	       ]
-	     )
-
-	     LIBS="$saved_LIBS"
-	    ],
-	    [if test "x$with_libunwind" != xcheck; then
-	       AC_MSG_FAILURE([failed to find libunwind])
-	     fi
-	    ],
-	    [$libunwind_LIBS]
-	  )
-
-	  LDFLAGS="$saved_LDFLAGS"
-	 ],
-	 [if test "x$with_libunwind" != xcheck; then
-	    AC_MSG_FAILURE([failed to find libunwind-ptrace.h])
-	  fi
-	 ]
-       )
-
-       CPPFLAGS="$saved_CPPFLAGS"
-      ]
+      [if test "$enable_static" = "yes"; then
+           PKG_CHECK_MODULES_STATIC([LIBUNWIND], [libunwind libunwind-generic libunwind-ptrace])
+       else
+           PKG_CHECK_MODULES([LIBUNWIND], [libunwind libunwind-generic libunwind-ptrace])
+       fi
+       use_unwinder="libunwind"
+       libunwind_CPPFLAGS="$LIBUNWIND_CFLAGS"
+       libunwind_LIBS="$LIBUNWIND_LIBS"]
 )
 
 if test "x$use_unwinder" = xlibunwind; then