Compare commits
No commits in common. "c9s" and "c8" have entirely different histories.
@ -1 +0,0 @@
|
|||||||
1
|
|
||||||
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,6 +1 @@
|
|||||||
ltrace-0.5-svn45.tar.gz
|
SOURCES/ltrace-0.7.91.tar.bz2
|
||||||
ltrace-*/
|
|
||||||
/ltrace-0.6.0.tar.bz2
|
|
||||||
/ltrace-0.7.0.tar.bz2
|
|
||||||
/ltrace-0.7.2.tar.bz2
|
|
||||||
/ltrace-0.7.91.tar.bz2
|
|
||||||
|
|||||||
1
.ltrace.metadata
Normal file
1
.ltrace.metadata
Normal file
@ -0,0 +1 @@
|
|||||||
|
74029042af10b0e9fca6acccb016ce096460a176 SOURCES/ltrace-0.7.91.tar.bz2
|
||||||
@ -1,6 +1,6 @@
|
|||||||
diff -rup a/sysdeps/linux-gnu/aarch64/fetch.c b/sysdeps/linux-gnu/aarch64/fetch.c
|
diff -rup a/sysdeps/linux-gnu/aarch64/fetch.c b/sysdeps/linux-gnu/aarch64/fetch.c
|
||||||
--- a/sysdeps/linux-gnu/aarch64/fetch.c 2018-07-05 16:06:10.066626252 -0400
|
--- a/sysdeps/linux-gnu/aarch64/fetch.c 2018-07-05 16:06:04.697642086 -0400
|
||||||
+++ b/sysdeps/linux-gnu/aarch64/fetch.c 2018-07-05 16:17:17.659748481 -0400
|
+++ b/sysdeps/linux-gnu/aarch64/fetch.c 2018-07-05 16:16:19.366905601 -0400
|
||||||
@@ -308,12 +308,9 @@ arch_fetch_arg_init(enum tof type, struc
|
@@ -308,12 +308,9 @@ arch_fetch_arg_init(enum tof type, struc
|
||||||
struct fetch_script how = pass_arg(context, proc, ret_info);
|
struct fetch_script how = pass_arg(context, proc, ret_info);
|
||||||
if (how.c == CVT_ERR)
|
if (how.c == CVT_ERR)
|
||||||
@ -16,8 +16,8 @@ diff -rup a/sysdeps/linux-gnu/aarch64/fetch.c b/sysdeps/linux-gnu/aarch64/fetch.
|
|||||||
|
|
||||||
return context;
|
return context;
|
||||||
diff -rup a/testsuite/ltrace.main/system_call_params.exp b/testsuite/ltrace.main/system_call_params.exp
|
diff -rup a/testsuite/ltrace.main/system_call_params.exp b/testsuite/ltrace.main/system_call_params.exp
|
||||||
--- a/testsuite/ltrace.main/system_call_params.exp 2018-07-05 16:06:10.516624926 -0400
|
--- a/testsuite/ltrace.main/system_call_params.exp 2018-07-05 16:06:05.176640673 -0400
|
||||||
+++ b/testsuite/ltrace.main/system_call_params.exp 2018-07-05 16:58:01.549830643 -0400
|
+++ b/testsuite/ltrace.main/system_call_params.exp 2018-07-05 17:27:25.052710126 -0400
|
||||||
@@ -61,13 +61,13 @@ set conf [ltraceNamedSource "$dir/syscal
|
@@ -61,13 +61,13 @@ set conf [ltraceNamedSource "$dir/syscal
|
||||||
# doesn't list readdir, that would be taken from somelib.conf with a
|
# doesn't list readdir, that would be taken from somelib.conf with a
|
||||||
# wrong prototype.
|
# wrong prototype.
|
||||||
@ -1,17 +1,14 @@
|
|||||||
Summary: Tracks runtime library calls from dynamically linked executables
|
Summary: Tracks runtime library calls from dynamically linked executables
|
||||||
Name: ltrace
|
Name: ltrace
|
||||||
Version: 0.7.91
|
Version: 0.7.91
|
||||||
Release: 43%{?dist}
|
Release: 28%{?dist}
|
||||||
# In coordination with Juan Céspedes, upstream is now officially on gitlab.
|
URL: http://ltrace.alioth.debian.org/
|
||||||
# We are going to being sending all of our Fedora patches upstream to gitlab.
|
|
||||||
URL: https://gitlab.com/cespedes/ltrace
|
|
||||||
License: GPLv2+
|
License: GPLv2+
|
||||||
|
Group: Development/Debuggers
|
||||||
|
|
||||||
BuildRequires: elfutils-devel dejagnu
|
BuildRequires: elfutils-devel dejagnu
|
||||||
BuildRequires: libselinux-devel
|
BuildRequires: libselinux-devel
|
||||||
BuildRequires: autoconf automake libtool
|
BuildRequires: autoconf automake libtool
|
||||||
BuildRequires: gcc-c++
|
|
||||||
BuildRequires: make
|
|
||||||
|
|
||||||
# Note: this URL needs to be updated for each release, as the file
|
# Note: this URL needs to be updated for each release, as the file
|
||||||
# number changes for each file. Full list of released files is at:
|
# number changes for each file. Full list of released files is at:
|
||||||
@ -109,28 +106,8 @@ Patch27: ltrace-rh1423913.patch
|
|||||||
# AARCH64 large parameters and syscall testsuite fixes.
|
# AARCH64 large parameters and syscall testsuite fixes.
|
||||||
Patch28: ltrace-0.7.91-aarch64-params.patch
|
Patch28: ltrace-0.7.91-aarch64-params.patch
|
||||||
|
|
||||||
# gcc-9 fix. Avoid passing NULL as argument to %s
|
# IA64 CET support
|
||||||
Patch29: ltrace-0.7.91-null.patch
|
Patch29: ltrace-0.7.91-cet.patch
|
||||||
|
|
||||||
# Adds support for CET PLTs via second-plt lookups.
|
|
||||||
Patch30: ltrace-0.7.91-cet.patch
|
|
||||||
|
|
||||||
# Extra #includes for gcc 9
|
|
||||||
Patch31: ltrace-0.7.91-aarch64-headers.patch
|
|
||||||
# Testsuite: AARCH64 ifuncs not supported yet yet.
|
|
||||||
Patch32: ltrace-rh1225568.patch
|
|
||||||
|
|
||||||
# testsuite fixes for pre-installed config files
|
|
||||||
Patch33: ltrace-0.7.91-testsuite-system_call_params.patch
|
|
||||||
|
|
||||||
# Ignore bogus files from the environment
|
|
||||||
Patch34: ltrace-0.7.91-XDG_CONFIG_DIRS.patch
|
|
||||||
|
|
||||||
# GCC erroneously warns about uninitialized values
|
|
||||||
Patch35: ltrace-0.7.91-rh1799619.patch
|
|
||||||
|
|
||||||
# Support for both SC and SCV sycall insns
|
|
||||||
Patch36: ltrace-0.7.91-ppc64le-scv.patch
|
|
||||||
|
|
||||||
%description
|
%description
|
||||||
Ltrace is a debugging program which runs a specified command until the
|
Ltrace is a debugging program which runs a specified command until the
|
||||||
@ -173,33 +150,24 @@ execution of processes.
|
|||||||
%patch27 -p1
|
%patch27 -p1
|
||||||
%patch28 -p1
|
%patch28 -p1
|
||||||
%patch29 -p1
|
%patch29 -p1
|
||||||
%patch30 -p1
|
|
||||||
%patch31 -p1
|
|
||||||
%patch32 -p1
|
|
||||||
%patch33 -p1
|
|
||||||
%patch34 -p1
|
|
||||||
%patch35 -p1
|
|
||||||
%patch36 -p1
|
|
||||||
|
|
||||||
%build
|
%build
|
||||||
autoreconf -i
|
autoreconf -i
|
||||||
%configure --docdir=%{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}
|
%configure --docdir=%{?_pkgdocdir}%{!?_pkgdocdir:%{_docdir}/%{name}-%{version}}
|
||||||
%make_build
|
make %{?_smp_mflags}
|
||||||
|
|
||||||
%install
|
%install
|
||||||
%make_install bindir=%{_bindir}
|
make DESTDIR=$RPM_BUILD_ROOT bindir=%{_bindir} install
|
||||||
|
|
||||||
# The testsuite is useful for development in real world, but fails in
|
# The testsuite is useful for development in real world, but fails in
|
||||||
# koji for some reason. Disable it, but have it handy.
|
# koji for some reason. Disable it, but have it handy.
|
||||||
%check
|
%check
|
||||||
echo ====================TESTING=========================
|
echo ====================TESTING=========================
|
||||||
# The ppc64 testsuite hangs rpmbuild hard in koji, disable until fixed.
|
|
||||||
%ifnarch ppc64le
|
|
||||||
timeout 180 make check ||:
|
timeout 180 make check ||:
|
||||||
%endif
|
|
||||||
echo ====================TESTING END=====================
|
echo ====================TESTING END=====================
|
||||||
|
|
||||||
%files
|
%files
|
||||||
|
%defattr(-,root,root)
|
||||||
%doc NEWS COPYING CREDITS INSTALL README TODO
|
%doc NEWS COPYING CREDITS INSTALL README TODO
|
||||||
%{_bindir}/ltrace
|
%{_bindir}/ltrace
|
||||||
%{_mandir}/man1/ltrace.1*
|
%{_mandir}/man1/ltrace.1*
|
||||||
@ -207,60 +175,10 @@ echo ====================TESTING END=====================
|
|||||||
%{_datadir}/ltrace
|
%{_datadir}/ltrace
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 0.7.91-43
|
* Tue Nov 05 2019 DJ Delorie <dj@redhat.com> - 0.7.91-28
|
||||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
- Support Intel CET PLTs (#1655368)
|
||||||
Related: rhbz#1991688
|
|
||||||
|
|
||||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.7.91-42
|
* Fri Jul 06 2018 DJ Delorie <dj@redhat.com> - 0.7.91-27
|
||||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
|
||||||
|
|
||||||
* Mon Feb 8 2021 DJ Delorie <dj@redhat.com> - 0.7.91-41
|
|
||||||
- Add support for SCV syscall insn for ppc64le
|
|
||||||
|
|
||||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-40
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-39
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jul 14 2020 Tom Stellard <tstellar@redhat.com> - 0.7.91-38
|
|
||||||
- Use make macros
|
|
||||||
- https://fedoraproject.org/wiki/Changes/UseMakeBuildInstallMacro
|
|
||||||
|
|
||||||
* Thu Feb 6 2020 DJ Delorie <dj@redhat.com> - 0.7.91-37
|
|
||||||
- Initialize some variables to avoid gcc warning (#1799619)
|
|
||||||
|
|
||||||
* Wed Jan 29 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-36
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
|
|
||||||
|
|
||||||
* Tue Jul 23 2019 DJ Delorie <dj@redhat.com> - 0.7.91-35
|
|
||||||
- Skip ppc64 testsuite until the hangs in koji can be fixed.
|
|
||||||
|
|
||||||
* Wed Jul 17 2019 DJ Delorie <dj@redhat.com> - 0.7.91-34
|
|
||||||
- Add fixes in handling of bogus paths that come from XDG_CONFIG_DIRS.
|
|
||||||
- Testsuite fixes for pre-installed config files.
|
|
||||||
- Extra AARCH64 includes for gcc 9.
|
|
||||||
- Testsuite: AARCH64 ifuncs not supported yet yet.
|
|
||||||
|
|
||||||
* Thu Apr 4 2019 DJ Delorie <dj@redhat.com> - 0.7.91-33
|
|
||||||
- Add Intel CET support.
|
|
||||||
|
|
||||||
* Tue Mar 12 2019 DJ Delorie <dj@redhat.com> - 0.7.91-32
|
|
||||||
- Revert previous patch, redundant
|
|
||||||
|
|
||||||
* Tue Mar 5 2019 Eugene Syromiatnikov <esyr@redhat.com> - 0.7.91-31
|
|
||||||
- Fix "Too many return value classes" assert
|
|
||||||
|
|
||||||
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-30
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
|
|
||||||
|
|
||||||
* Wed Jan 16 2019 Jeff Law <law@redhat.com> - 0.7.91-29
|
|
||||||
- Avoid passing NULL as argument to %s in printf call
|
|
||||||
|
|
||||||
* Fri Jul 13 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-28
|
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_29_Mass_Rebuild
|
|
||||||
|
|
||||||
* Thu Jul 05 2018 DJ Delorie <dj@redhat.com> - 0.7.91-27
|
|
||||||
- Fix aarch64 long parameters (via $r8) support.
|
- Fix aarch64 long parameters (via $r8) support.
|
||||||
- Make system_call_params test compare more exactly.
|
- Make system_call_params test compare more exactly.
|
||||||
|
|
||||||
13
gating.yaml
13
gating.yaml
@ -1,13 +0,0 @@
|
|||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- fedora-*
|
|
||||||
decision_context: bodhi_update_push_stable
|
|
||||||
subject_type: koji_build
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: fedora-ci.koji-build.tier0.functional}
|
|
||||||
--- !Policy
|
|
||||||
product_versions:
|
|
||||||
- rhel-9
|
|
||||||
decision_context: osci_compose_gate
|
|
||||||
rules:
|
|
||||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
|
||||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@ -1,151 +0,0 @@
|
|||||||
diff -rupN a/options.c b/options.c
|
|
||||||
--- a/options.c 2019-06-28 17:15:31.515626363 -0400
|
|
||||||
+++ b/options.c 2019-06-28 17:18:59.490632337 -0400
|
|
||||||
@@ -440,7 +440,8 @@ parse_int(const char *optarg, char opt,
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
-parse_colon_separated_list(const char *paths, struct vect *vec)
|
|
||||||
+parse_colon_separated_list(const char *paths, struct vect *vec,
|
|
||||||
+ enum opt_F_origin origin)
|
|
||||||
{
|
|
||||||
/* PATHS contains a colon-separated list of directories and
|
|
||||||
* files to load. It's modeled after shell PATH variable,
|
|
||||||
@@ -467,6 +468,7 @@ parse_colon_separated_list(const char *p
|
|
||||||
struct opt_F_t arg = {
|
|
||||||
.pathname = tok,
|
|
||||||
.own_pathname = tok == clone,
|
|
||||||
+ .origin = origin,
|
|
||||||
};
|
|
||||||
if (VECT_PUSHBACK(vec, &arg) < 0)
|
|
||||||
/* Presumably this is not a deal-breaker. */
|
|
||||||
@@ -494,16 +496,18 @@ opt_F_get_kind(struct opt_F_t *entry)
|
|
||||||
if (entry->kind == OPT_F_UNKNOWN) {
|
|
||||||
struct stat st;
|
|
||||||
if (lstat(entry->pathname, &st) < 0) {
|
|
||||||
- fprintf(stderr, "Couldn't stat %s: %s\n",
|
|
||||||
- entry->pathname, strerror(errno));
|
|
||||||
+ if (entry->origin == OPT_F_CMDLINE)
|
|
||||||
+ fprintf(stderr, "Couldn't stat %s: %s\n",
|
|
||||||
+ entry->pathname, strerror(errno));
|
|
||||||
entry->kind = OPT_F_BROKEN;
|
|
||||||
} else if (S_ISDIR(st.st_mode)) {
|
|
||||||
entry->kind = OPT_F_DIR;
|
|
||||||
} else if (S_ISREG(st.st_mode) || S_ISLNK(st.st_mode)) {
|
|
||||||
entry->kind = OPT_F_FILE;
|
|
||||||
} else {
|
|
||||||
- fprintf(stderr, "%s is neither a regular file, "
|
|
||||||
- "nor a directory.\n", entry->pathname);
|
|
||||||
+ if (entry->origin == OPT_F_CMDLINE)
|
|
||||||
+ fprintf(stderr, "%s is neither a regular file, "
|
|
||||||
+ "nor a directory.\n", entry->pathname);
|
|
||||||
entry->kind = OPT_F_BROKEN;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -607,7 +611,8 @@ process_options(int argc, char **argv)
|
|
||||||
options.follow = 1;
|
|
||||||
break;
|
|
||||||
case 'F':
|
|
||||||
- parse_colon_separated_list(optarg, &opt_F);
|
|
||||||
+ parse_colon_separated_list(optarg, &opt_F,
|
|
||||||
+ OPT_F_CMDLINE);
|
|
||||||
break;
|
|
||||||
case 'h':
|
|
||||||
usage();
|
|
||||||
diff -rupN a/options.h b/options.h
|
|
||||||
--- a/options.h 2019-06-28 17:15:31.515626363 -0400
|
|
||||||
+++ b/options.h 2019-06-28 17:18:55.984632238 -0400
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
/*
|
|
||||||
* This file is part of ltrace.
|
|
||||||
- * Copyright (C) 2012,2013 Petr Machata, Red Hat Inc.
|
|
||||||
+ * Copyright (C) 2012, 2013, 2015 Petr Machata, Red Hat Inc.
|
|
||||||
* Copyright (C) 2009,2010 Joe Damato
|
|
||||||
* Copyright (C) 1998,2002,2008 Juan Cespedes
|
|
||||||
* Copyright (C) 2006 Ian Wienand
|
|
||||||
@@ -77,10 +77,16 @@ enum opt_F_kind {
|
|
||||||
OPT_F_DIR,
|
|
||||||
};
|
|
||||||
|
|
||||||
+enum opt_F_origin {
|
|
||||||
+ OPT_F_CMDLINE = 0,
|
|
||||||
+ OPT_F_ENVIRON,
|
|
||||||
+};
|
|
||||||
+
|
|
||||||
struct opt_F_t {
|
|
||||||
char *pathname;
|
|
||||||
int own_pathname : 1;
|
|
||||||
enum opt_F_kind kind : 2;
|
|
||||||
+ enum opt_F_origin origin : 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* If entry->kind is OPT_F_UNKNOWN, figure out whether it should be
|
|
||||||
@@ -98,7 +104,8 @@ void opt_F_destroy(struct opt_F_t *entry
|
|
||||||
* The list is split and added to VEC, which shall be a vector
|
|
||||||
* initialized like VECT_INIT(VEC, struct opt_F_t); Returns 0 on
|
|
||||||
* success or a negative value on failure. */
|
|
||||||
-int parse_colon_separated_list(const char *paths, struct vect *vec);
|
|
||||||
+int parse_colon_separated_list(const char *paths, struct vect *vec,
|
|
||||||
+ enum opt_F_origin origin);
|
|
||||||
|
|
||||||
/* Vector of struct opt_F_t. */
|
|
||||||
extern struct vect opt_F;
|
|
||||||
diff -rupN a/sysdeps/linux-gnu/hooks.c b/sysdeps/linux-gnu/hooks.c
|
|
||||||
--- a/sysdeps/linux-gnu/hooks.c 2013-11-04 20:08:03.000000000 -0500
|
|
||||||
+++ b/sysdeps/linux-gnu/hooks.c 2019-06-28 17:18:55.989632238 -0400
|
|
||||||
@@ -1,6 +1,6 @@
|
|
||||||
/*
|
|
||||||
* This file is part of ltrace.
|
|
||||||
- * Copyright (C) 2012, 2013 Petr Machata
|
|
||||||
+ * Copyright (C) 2012, 2013, 2015 Petr Machata
|
|
||||||
*
|
|
||||||
* This program is free software; you can redistribute it and/or
|
|
||||||
* modify it under the terms of the GNU General Public License as
|
|
||||||
@@ -153,7 +153,7 @@ again:
|
|
||||||
if (xdg_sys != NULL) {
|
|
||||||
struct vect v;
|
|
||||||
VECT_INIT(&v, struct opt_F_t);
|
|
||||||
- if (parse_colon_separated_list(xdg_sys, &v) < 0
|
|
||||||
+ if (parse_colon_separated_list(xdg_sys, &v, OPT_F_ENVIRON) < 0
|
|
||||||
|| VECT_EACH(&v, struct opt_F_t, NULL,
|
|
||||||
add_dir_component_cb, &dirs) != NULL)
|
|
||||||
fprintf(stderr,
|
|
||||||
diff -rupN a/testsuite/ltrace.main/XDG_CONFIG_DIRS.exp b/testsuite/ltrace.main/XDG_CONFIG_DIRS.exp
|
|
||||||
--- a/testsuite/ltrace.main/XDG_CONFIG_DIRS.exp 1969-12-31 19:00:00.000000000 -0500
|
|
||||||
+++ b/testsuite/ltrace.main/XDG_CONFIG_DIRS.exp 2019-06-28 17:18:55.989632238 -0400
|
|
||||||
@@ -0,0 +1,35 @@
|
|
||||||
+# This file is part of ltrace.
|
|
||||||
+# Copyright (C) 2015 Petr Machata, Red Hat Inc.
|
|
||||||
+#
|
|
||||||
+# This program is free software; you can redistribute it and/or
|
|
||||||
+# modify it under the terms of the GNU General Public License as
|
|
||||||
+# published by the Free Software Foundation; either version 2 of the
|
|
||||||
+# License, or (at your option) any later version.
|
|
||||||
+#
|
|
||||||
+# This program is distributed in the hope that it will be useful, but
|
|
||||||
+# WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
+# General Public License for more details.
|
|
||||||
+#
|
|
||||||
+# You should have received a copy of the GNU General Public License
|
|
||||||
+# along with this program; if not, write to the Free Software
|
|
||||||
+# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
|
|
||||||
+# 02110-1301 USA
|
|
||||||
+
|
|
||||||
+set bin [ltraceCompile {} [ltraceSource c {
|
|
||||||
+ int main() { return 0; }
|
|
||||||
+}]]
|
|
||||||
+
|
|
||||||
+setenv XDG_CONFIG_DIRS "blah"
|
|
||||||
+ltraceRun -L -- $bin
|
|
||||||
+unsetenv XDG_CONFIG_DIRS
|
|
||||||
+
|
|
||||||
+if {[catch "exec $LTRACE -L -F blah -- $bin" output]} {
|
|
||||||
+ ltraceMatch [ltraceSource ltrace "$output"] {
|
|
||||||
+ {blah == 1}
|
|
||||||
+ }
|
|
||||||
+} else {
|
|
||||||
+ fail "expected error message regarding `blah`"
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
+ltraceDone
|
|
||||||
@ -1,24 +0,0 @@
|
|||||||
Index: ltrace-0.7.91/sysdeps/linux-gnu/aarch64/regs.c
|
|
||||||
===================================================================
|
|
||||||
--- ltrace-0.7.91.orig/sysdeps/linux-gnu/aarch64/regs.c
|
|
||||||
+++ ltrace-0.7.91/sysdeps/linux-gnu/aarch64/regs.c
|
|
||||||
@@ -23,6 +23,7 @@
|
|
||||||
#include <linux/uio.h>
|
|
||||||
#include <assert.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
+#include <stdio.h>
|
|
||||||
|
|
||||||
#include "backend.h"
|
|
||||||
#include "proc.h"
|
|
||||||
Index: ltrace-0.7.91/sysdeps/linux-gnu/aarch64/trace.c
|
|
||||||
===================================================================
|
|
||||||
--- ltrace-0.7.91.orig/sysdeps/linux-gnu/aarch64/trace.c
|
|
||||||
+++ ltrace-0.7.91/sysdeps/linux-gnu/aarch64/trace.c
|
|
||||||
@@ -24,6 +24,7 @@
|
|
||||||
#include <asm/ptrace.h>
|
|
||||||
#include <string.h>
|
|
||||||
#include <errno.h>
|
|
||||||
+#include <stdio.h>
|
|
||||||
|
|
||||||
#include "backend.h"
|
|
||||||
#include "proc.h"
|
|
||||||
@ -1,14 +0,0 @@
|
|||||||
diff --git a/output.c b/output.c
|
|
||||||
index 7cab383..18f9cf0 100644
|
|
||||||
--- a/output.c
|
|
||||||
+++ b/output.c
|
|
||||||
@@ -598,6 +598,9 @@ frame_callback (Dwfl_Frame *state, void *arg)
|
|
||||||
NULL, NULL, NULL);
|
|
||||||
symname = dwfl_module_addrinfo(mod, pc, &off, &sym,
|
|
||||||
NULL, NULL, NULL);
|
|
||||||
+ } else {
|
|
||||||
+ modname = "unknown";
|
|
||||||
+ symname = "unknown";
|
|
||||||
}
|
|
||||||
|
|
||||||
/* This mimics the output produced by libunwind below. */
|
|
||||||
@ -1,20 +0,0 @@
|
|||||||
diff -rup a/sysdeps/linux-gnu/ppc/trace.c b/sysdeps/linux-gnu/ppc/trace.c
|
|
||||||
--- a/sysdeps/linux-gnu/ppc/trace.c 2021-02-08 14:35:16.876494095 -0500
|
|
||||||
+++ b/sysdeps/linux-gnu/ppc/trace.c 2021-02-08 15:05:59.468107311 -0500
|
|
||||||
@@ -57,6 +57,7 @@ get_arch_dep(struct process *proc)
|
|
||||||
}
|
|
||||||
|
|
||||||
#define SYSCALL_INSN 0x44000002
|
|
||||||
+#define SYSCALL2_INSN 0x44000001
|
|
||||||
|
|
||||||
/* Returns 1 if syscall, 2 if sysret, 0 otherwise. */
|
|
||||||
int
|
|
||||||
@@ -75,7 +76,7 @@ syscall_p(struct process *proc, int stat
|
|
||||||
0);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
- if (insn == SYSCALL_INSN) {
|
|
||||||
+ if (insn == SYSCALL_INSN || insn == SYSCALL2_INSN) {
|
|
||||||
*sysnum =
|
|
||||||
(int)ptrace(PTRACE_PEEKUSER, proc->pid,
|
|
||||||
sizeof(long) * PT_R0, 0);
|
|
||||||
@ -1,16 +0,0 @@
|
|||||||
diff -rup a/expr.c b/expr.c
|
|
||||||
--- a/expr.c 2013-10-10 08:43:55.000000000 -0400
|
|
||||||
+++ b/expr.c 2020-02-06 17:05:40.658679755 -0500
|
|
||||||
@@ -189,10 +189,10 @@ int
|
|
||||||
expr_clone(struct expr_node *retp, const struct expr_node *node)
|
|
||||||
{
|
|
||||||
*retp = *node;
|
|
||||||
+ struct expr_node *nlhs;
|
|
||||||
+ struct expr_node *nrhs = NULL;
|
|
||||||
|
|
||||||
switch (node->kind) {
|
|
||||||
- struct expr_node *nlhs;
|
|
||||||
- struct expr_node *nrhs;
|
|
||||||
|
|
||||||
case EXPR_OP_ARGNO:
|
|
||||||
case EXPR_OP_SELF:
|
|
||||||
@ -1,68 +0,0 @@
|
|||||||
diff -rup a/testsuite/Makefile.am b/testsuite/Makefile.am
|
|
||||||
--- a/testsuite/Makefile.am 2012-12-16 20:53:45.000000000 -0500
|
|
||||||
+++ b/testsuite/Makefile.am 2019-06-28 16:59:19.935602953 -0400
|
|
||||||
@@ -39,6 +39,7 @@ env.exp: Makefile
|
|
||||||
rm -f env.exp
|
|
||||||
echo set libelf_LD_LIBRARY_PATH '"$(libelf_LD_LIBRARY_PATH)"' >> $@
|
|
||||||
echo set libunwind_LD_LIBRARY_PATH '"$(libunwind_LD_LIBRARY_PATH)"' >> $@
|
|
||||||
+ echo set PREFIX '"$(prefix)"' >> $@
|
|
||||||
|
|
||||||
CLEANFILES = *.o *.so *.log *.sum *.ltrace site.bak setval.tmp site.exp env.exp
|
|
||||||
|
|
||||||
diff -rup a/testsuite/Makefile.in b/testsuite/Makefile.in
|
|
||||||
--- a/testsuite/Makefile.in 2013-11-04 20:22:47.000000000 -0500
|
|
||||||
+++ b/testsuite/Makefile.in 2019-06-28 16:59:12.075602806 -0400
|
|
||||||
@@ -648,6 +648,7 @@ env.exp: Makefile
|
|
||||||
rm -f env.exp
|
|
||||||
echo set libelf_LD_LIBRARY_PATH '"$(libelf_LD_LIBRARY_PATH)"' >> $@
|
|
||||||
echo set libunwind_LD_LIBRARY_PATH '"$(libunwind_LD_LIBRARY_PATH)"' >> $@
|
|
||||||
+ echo set PREFIX '"$(prefix)"' >> $@
|
|
||||||
|
|
||||||
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
|
||||||
# Otherwise a system limit (for SysV at least) may be exceeded.
|
|
||||||
diff -rup a/testsuite/ltrace.main/system_call_params.exp b/testsuite/ltrace.main/system_call_params.exp
|
|
||||||
--- a/testsuite/ltrace.main/system_call_params.exp 2019-06-28 16:44:07.542584754 -0400
|
|
||||||
+++ b/testsuite/ltrace.main/system_call_params.exp 2019-06-28 17:00:35.811604355 -0400
|
|
||||||
@@ -1,5 +1,5 @@
|
|
||||||
# This file is part of ltrace.
|
|
||||||
-# Copyright (C) 2013, 2014 Petr Machata, Red Hat Inc.
|
|
||||||
+# Copyright (C) 2013, 2014, 2015 Petr Machata, Red Hat Inc.
|
|
||||||
#
|
|
||||||
# This program is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU General Public License as
|
|
||||||
@@ -60,8 +60,35 @@ set conf [ltraceNamedSource "$dir/syscal
|
|
||||||
# somelib.conf is passed, and syscalls.conf is not available, or
|
|
||||||
# doesn't list readdir, that would be taken from somelib.conf with a
|
|
||||||
# wrong prototype.
|
|
||||||
+#
|
|
||||||
+# This test relies on the fact that there is no global config file
|
|
||||||
+# that would provide legitimate system call prototypes. But that
|
|
||||||
+# doesn't have to be true, maybe ltrace is already installed on the
|
|
||||||
+# system with the right prefix. So first compile a wrapper that we
|
|
||||||
+# use to redirect fopen calls.
|
|
||||||
+
|
|
||||||
+set libfopen_so [ltraceCompile libfopen.so -ldl \
|
|
||||||
+ [ltraceSource c [string map [list "@PREFIX@" "$PREFIX"] {
|
|
||||||
+ #define _GNU_SOURCE
|
|
||||||
+ #include <dlfcn.h>
|
|
||||||
+ #include <stdio.h>
|
|
||||||
+ #include <string.h>
|
|
||||||
+
|
|
||||||
+ FILE *
|
|
||||||
+ fopen(const char *path, const char *mode)
|
|
||||||
+ {
|
|
||||||
+ #define PATH "@PREFIX@/share"
|
|
||||||
+ if (strncmp(path, PATH, sizeof(PATH) - 1) == 0)
|
|
||||||
+ path = "/dev/null";
|
|
||||||
|
|
||||||
+ return ((FILE *(*)(const char *, const char *))
|
|
||||||
+ dlsym(RTLD_NEXT, "fopen")) (path, mode);
|
|
||||||
+ }
|
|
||||||
+}]]]
|
|
||||||
+
|
|
||||||
+setenv LD_PRELOAD $libfopen_so
|
|
||||||
ltraceMatch1 [ltraceRun -L -S -F $conf -- $bin] {^open@SYS\("/some/path", 0\)} == 0
|
|
||||||
+unsetenv LD_PRELOAD
|
|
||||||
|
|
||||||
# On the other hand, if -F somedir/ is given, we want to accept
|
|
||||||
# syscalls.conf found there.
|
|
||||||
@ -1,12 +0,0 @@
|
|||||||
diff -Nrup a/testsuite/ltrace.minor/trace-irelative.exp b/testsuite/ltrace.minor/trace-irelative.exp
|
|
||||||
--- a/testsuite/ltrace.minor/trace-irelative.exp 2013-11-04 18:08:03.000000000 -0700
|
|
||||||
+++ b/testsuite/ltrace.minor/trace-irelative.exp 2015-06-01 12:30:59.737371166 -0600
|
|
||||||
@@ -54,6 +54,8 @@ set src [ltraceSource c {
|
|
||||||
}]
|
|
||||||
|
|
||||||
foreach ext {{} .pie} {
|
|
||||||
+ # ltrace does not yet support AARCH64's ifuncs
|
|
||||||
+ setup_xfail aarch64*-*-*
|
|
||||||
set bin1 [ltraceCompile $ext $src]
|
|
||||||
do_tests $bin1 ""
|
|
||||||
}
|
|
||||||
@ -1,6 +0,0 @@
|
|||||||
summary: CI Gating Plan
|
|
||||||
discover:
|
|
||||||
how: fmf
|
|
||||||
directory: tests
|
|
||||||
execute:
|
|
||||||
how: beakerlib
|
|
||||||
@ -1,2 +0,0 @@
|
|||||||
The test's Makefiles are not used in Fedora CI infrastructure. But are kept here
|
|
||||||
for backward compatibility with traditional beakerlib test harness in RHEL.
|
|
||||||
@ -1,63 +0,0 @@
|
|||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /tools/ltrace/Sanity/broken-binary-handling
|
|
||||||
# Description: Try to trace broken binary by ltrace
|
|
||||||
# Author: Michal Nowak <mnowak@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/ltrace/Sanity/broken-binary-handling
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE broken.bin.gz
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Michal Nowak <mnowak@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Try to trace broken binary by ltrace" >> $(METADATA)
|
|
||||||
@echo "Type: Sanity" >> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: ltrace" >> $(METADATA)
|
|
||||||
@echo "Requires: ltrace gzip" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: yes" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
@ -1,3 +0,0 @@
|
|||||||
PURPOSE of /tools/ltrace/Sanity/broken-binary-handling
|
|
||||||
Description: Try to trace broken binary by ltrace
|
|
||||||
Author: Michal Nowak <mnowak@redhat.com>
|
|
||||||
Binary file not shown.
@ -1,14 +0,0 @@
|
|||||||
summary: Try to trace broken binary by ltrace
|
|
||||||
description: ''
|
|
||||||
contact:
|
|
||||||
- Vaclav Kadlcik <vkadlcik@redhat.com>
|
|
||||||
component:
|
|
||||||
- ltrace
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- ltrace
|
|
||||||
- gzip
|
|
||||||
duration: 5m
|
|
||||||
extra-summary: /tools/ltrace/Sanity/broken-binary-handling
|
|
||||||
extra-task: /tools/ltrace/Sanity/broken-binary-handling
|
|
||||||
@ -1,56 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /tools/ltrace/Sanity/broken-binary-handling
|
|
||||||
# Description: Try to trace broken binary by ltrace
|
|
||||||
# Author: Michal Nowak <mnowak@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2011 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
# Include Beaker environment
|
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
||||||
|
|
||||||
PACKAGE="$(rpm -qf $(which ltrace))"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
|
|
||||||
rlRun "TmpDir=\`mktemp -d\`" 0 "Creating tmp directory"
|
|
||||||
cp broken.bin.gz $TmpDir
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
gunzip broken.bin.gz
|
|
||||||
chmod +x broken.bin
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "ltrace -f ./broken.bin > out 2>&1 " 1 "ltrace can't trace broken.bin"
|
|
||||||
OUT=`cat out`
|
|
||||||
rlLog "LOG: $OUT"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
Loading…
Reference in New Issue
Block a user