mrrl

Minimal Reliable Reproducible Linux
git clone https://ccx.te2000.cz/git/mrrl
Log | Files | Refs | Submodules | README

strace-6.5-static.patch (5425B)


      1 --- a/configure.ac
      2 +++ b/configure.ac
      3 @@ -54,6 +54,15 @@ AC_SUBST([STRACE_MANPAGE_DATE], [strace_manpage_date])
      4  AC_DEFINE([SLM_MANPAGE_DATE], "[slm_manpage_date]", [Date])
      5  AC_SUBST([SLM_MANPAGE_DATE], [slm_manpage_date])
      6  
      7 +AC_ARG_ENABLE([static],
      8 +	      [AS_HELP_STRING([--enable-static],
      9 +			      [link strace statically])],
     10 +	      [], [enable_static=no])
     11 +if test "$enable_static" = "yes"; then
     12 +	# Add -pthread since strace wants -lrt for timer_create, and -lrt uses -lpthread.
     13 +	LDFLAGS="$LDFLAGS -pthread -static"
     14 +fi
     15 +
     16  AC_C_BIGENDIAN
     17  
     18  dnl arch-specific default for --enable-gcc-Werror
     19 --- a/m4/st_libdw.m4
     20 +++ b/m4/st_libdw.m4
     21 @@ -8,7 +8,6 @@
     22  AC_DEFUN([st_ARG_LIBDW], [dnl
     23  
     24  : ${libdw_CPPFLAGS=}
     25 -: ${libdw_CFLAGS=}
     26  : ${libdw_LDFLAGS=}
     27  : ${libdw_LIBS=}
     28  
     29 @@ -34,48 +33,14 @@ AC_DEFUN([st_LIBDW], [dnl
     30  have_libdw=
     31  
     32  AS_IF([test "x$with_libdw" != xno && test "x$use_unwinder" = x],
     33 -      [saved_CPPFLAGS="$CPPFLAGS"
     34 -       saved_CFLAGS="$CFLAGS"
     35 -       CPPFLAGS="$CPPFLAGS $libdw_CPPFLAGS"
     36 -       CFLAGS="$CFLAGS $libdw_CFLAGS"
     37 -
     38 -       AC_CHECK_HEADERS([elfutils/libdwfl.h],
     39 -			[AC_CHECK_LIB([dw], [dwfl_linux_proc_attach],
     40 -				      [libdw_LIBS="-ldw $libdw_LIBS"
     41 -				       AC_CACHE_CHECK([for elfutils version],
     42 -						      [st_cv_ELFUTILS_VERSION],
     43 -						      [[st_cv_ELFUTILS_VERSION="$(echo _ELFUTILS_VERSION |
     44 -										  $CPP $CPPFLAGS -P -imacros elfutils/version.h - |
     45 -										  grep '^[0-9]')"
     46 -							test -n "$st_cv_ELFUTILS_VERSION" ||
     47 -								st_cv_ELFUTILS_VERSION=0
     48 -						      ]]
     49 -						     )
     50 -				       AS_IF([test "$st_cv_ELFUTILS_VERSION" -ge 164],
     51 -					     [have_libdw=yes],
     52 -					     [AS_IF([test "x$with_libdw" = xyes],
     53 -						    [AC_MSG_ERROR([elfutils version >= 164 is required for stack tracing support])],
     54 -						    [AC_MSG_WARN([elfutils version >= 164 is required for stack tracing support])]
     55 -						   )
     56 -					     ]
     57 -					    )
     58 -				      ],
     59 -				      [AS_IF([test "x$with_libdw" = xyes],
     60 -					     [AC_MSG_FAILURE([failed to find dwfl_linux_proc_attach in libdw])],
     61 -					    )
     62 -				      ],
     63 -				      [$libdw_LDFLAGS $libdw_LIBS]
     64 -				     )
     65 -			],
     66 -			[AS_IF([test "x$with_libdw" = xyes],
     67 -			       [AC_MSG_FAILURE([failed to find elfutils/libdwfl.h])]
     68 -			      )
     69 -			]
     70 -		       )
     71 -
     72 -       CFLAGS="$saved_CFLAGS"
     73 -       CPPFLAGS="$saved_CPPFLAGS"
     74 -      ]
     75 +      [if test "$enable_static" = "yes"; then
     76 +           PKG_CHECK_MODULES_STATIC([LIBDW], [libdw >= 0.164])
     77 +       else
     78 +           PKG_CHECK_MODULES([LIBDW], [libdw >= 0.164])
     79 +       fi
     80 +       have_libdw=yes
     81 +       libdw_CPPFLAGS="$LIBDW_CFLAGS"
     82 +       libdw_LIBS="$LIBDW_LIBS"]
     83  )
     84  
     85  AS_IF([test "x$have_libdw" = xyes],
     86 @@ -84,7 +49,6 @@ AS_IF([test "x$have_libdw" = xyes],
     87  		 [Whether to use libdw for stack tracing]
     88  		)
     89         AC_SUBST(libdw_CPPFLAGS)
     90 -       AC_SUBST(libdw_CFLAGS)
     91         AC_SUBST(libdw_LDFLAGS)
     92         AC_SUBST(libdw_LIBS)
     93        ]
     94 --- a/m4/st_libunwind.m4
     95 +++ b/m4/st_libunwind.m4
     96 @@ -28,64 +28,14 @@ AC_ARG_WITH([libunwind],
     97  AC_DEFUN([st_LIBUNWIND], [dnl
     98  
     99  AS_IF([test "x$with_libunwind" != xno && test "x$use_unwinder" = x],
    100 -      [saved_CPPFLAGS="$CPPFLAGS"
    101 -       CPPFLAGS="$CPPFLAGS $libunwind_CPPFLAGS"
    102 -
    103 -       AC_CHECK_HEADERS([libunwind-ptrace.h],
    104 -	 [saved_LDFLAGS="$LDFLAGS"
    105 -	  LDFLAGS="$LDFLAGS $libunwind_LDFLAGS"
    106 -
    107 -	  AC_CHECK_LIB([unwind], [backtrace],
    108 -	    [libunwind_LIBS="-lunwind $libunwind_LIBS"
    109 -
    110 -	     AC_MSG_CHECKING([for unw_create_addr_space in libunwind-generic])
    111 -	     saved_LIBS="$LIBS"
    112 -	     LIBS="-lunwind-generic $libunwind_LIBS $LIBS"
    113 -
    114 -	     AC_LINK_IFELSE(
    115 -	       [AC_LANG_PROGRAM([[#include <libunwind-ptrace.h>]],
    116 -				[[return !unw_create_addr_space(0, 0)]])
    117 -	       ],
    118 -	       [AC_MSG_RESULT([yes])
    119 -		libunwind_LIBS="-lunwind-generic $libunwind_LIBS"
    120 -
    121 -		AC_CHECK_LIB([unwind-ptrace], [_UPT_create],
    122 -		  [libunwind_LIBS="-lunwind-ptrace $libunwind_LIBS"
    123 -		   use_unwinder=libunwind
    124 -		  ],
    125 -		  [if test "x$with_libunwind" != xcheck; then
    126 -		     AC_MSG_FAILURE([failed to find _UPT_create in libunwind-ptrace])
    127 -		   fi
    128 -		  ],
    129 -		  [$libunwind_LIBS]
    130 -		)
    131 -	       ],
    132 -	       [AC_MSG_RESULT([no])
    133 -		if test "x$with_libunwind" != xcheck; then
    134 -		  AC_MSG_FAILURE([failed to find unw_create_addr_space in libunwind-generic])
    135 -		fi
    136 -	       ]
    137 -	     )
    138 -
    139 -	     LIBS="$saved_LIBS"
    140 -	    ],
    141 -	    [if test "x$with_libunwind" != xcheck; then
    142 -	       AC_MSG_FAILURE([failed to find libunwind])
    143 -	     fi
    144 -	    ],
    145 -	    [$libunwind_LIBS]
    146 -	  )
    147 -
    148 -	  LDFLAGS="$saved_LDFLAGS"
    149 -	 ],
    150 -	 [if test "x$with_libunwind" != xcheck; then
    151 -	    AC_MSG_FAILURE([failed to find libunwind-ptrace.h])
    152 -	  fi
    153 -	 ]
    154 -       )
    155 -
    156 -       CPPFLAGS="$saved_CPPFLAGS"
    157 -      ]
    158 +      [if test "$enable_static" = "yes"; then
    159 +           PKG_CHECK_MODULES_STATIC([LIBUNWIND], [libunwind libunwind-generic libunwind-ptrace])
    160 +       else
    161 +           PKG_CHECK_MODULES([LIBUNWIND], [libunwind libunwind-generic libunwind-ptrace])
    162 +       fi
    163 +       use_unwinder="libunwind"
    164 +       libunwind_CPPFLAGS="$LIBUNWIND_CFLAGS"
    165 +       libunwind_LIBS="$LIBUNWIND_LIBS"]
    166  )
    167  
    168  if test "x$use_unwinder" = xlibunwind; then
    169 --- a/src/Makefile.am
    170 +++ b/src/Makefile.am
    171 @@ -417,7 +417,6 @@ libstrace_a_SOURCES += unwind.c unwind.h
    172  if USE_LIBDW
    173  libstrace_a_SOURCES += unwind-libdw.c
    174  strace_CPPFLAGS += $(libdw_CPPFLAGS)
    175 -strace_CFLAGS += $(libdw_CFLAGS)
    176  strace_LDFLAGS += $(libdw_LDFLAGS)
    177  strace_LDADD += $(libdw_LIBS)
    178  endif