Compare commits
17 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a8c41cd354 | ||
|
|
955c1e43d1 | ||
|
|
10f68c7444 | ||
|
|
287df279b5 | ||
|
|
4b0ed33102 | ||
|
|
665a435b81 | ||
|
|
d70730248f | ||
|
|
941e708eb6 | ||
|
|
6444af4152 | ||
|
|
4773a704b6 | ||
|
|
a77340edfd | ||
|
|
15ef50aff4 | ||
|
|
cbc633d2a2 | ||
|
|
3abe3265ff | ||
|
|
00f430ccbe | ||
|
|
dcc1247212 | ||
|
|
16ad28b259 |
22 changed files with 111 additions and 183 deletions
1
.gitignore
vendored
1
.gitignore
vendored
|
|
@ -4,3 +4,4 @@ ltrace-*/
|
|||
/ltrace-0.7.0.tar.bz2
|
||||
/ltrace-0.7.2.tar.bz2
|
||||
/ltrace-0.7.91.tar.bz2
|
||||
/ltrace-0.8.1.tar.bz2
|
||||
|
|
|
|||
193
ltrace.spec
193
ltrace.spec
|
|
@ -1,11 +1,11 @@
|
|||
Summary: Tracks runtime library calls from dynamically linked executables
|
||||
Name: ltrace
|
||||
Version: 0.7.91
|
||||
Release: 44%{?dist}
|
||||
Version: 0.8.1
|
||||
Release: 1%{?dist}
|
||||
# In coordination with Juan Céspedes, upstream is now officially on gitlab.
|
||||
# We are going to being sending all of our Fedora patches upstream to gitlab.
|
||||
URL: https://gitlab.com/cespedes/ltrace
|
||||
License: GPLv2+
|
||||
License: GPL-2.0-or-later
|
||||
|
||||
BuildRequires: elfutils-devel dejagnu
|
||||
BuildRequires: libselinux-devel
|
||||
|
|
@ -13,127 +13,9 @@ BuildRequires: autoconf automake libtool
|
|||
BuildRequires: gcc-c++
|
||||
BuildRequires: make
|
||||
|
||||
# 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:
|
||||
# https://alioth.debian.org/frs/?group_id=30892
|
||||
# https://gitlab.com/cespedes/ltrace/-/releases
|
||||
Source: ltrace-%{version}.tar.bz2
|
||||
|
||||
# Merge of several upstream commits that fixes compilation on ARM.
|
||||
Patch0: ltrace-0.7.91-arm.patch
|
||||
|
||||
# Upstream patch that fixes accounting of exec, __libc_start_main and
|
||||
# others in -c output.
|
||||
Patch1: ltrace-0.7.91-account_execl.patch
|
||||
|
||||
# Upstream patch that fixes interpretation of PLT on x86_64 when
|
||||
# IRELATIVE slots are present.
|
||||
Patch2: ltrace-0.7.91-x86_64-irelative.patch
|
||||
|
||||
# Upstream patch that fixes fetching of system call arguments on s390.
|
||||
Patch3: ltrace-0.7.91-s390-fetch-syscall.patch
|
||||
|
||||
# Upstream patch that enables tracing of IRELATIVE PLT slots on s390.
|
||||
Patch4: ltrace-0.7.91-s390-irelative.patch
|
||||
|
||||
# Fix for a regression in tracing across fork. Upstream patch.
|
||||
Patch5: ltrace-0.7.91-ppc64-fork.patch
|
||||
|
||||
# Fix crashing a prelinked PPC64 binary which makes PLT calls through
|
||||
# slots that ltrace doesn't trace.
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1051221
|
||||
Patch6: ltrace-0.7.91-breakpoint-on_install.patch
|
||||
Patch7: ltrace-0.7.91-ppc64-unprelink.patch
|
||||
|
||||
# Man page nits. Backport of an upstream patch.
|
||||
Patch8: ltrace-0.7.91-man.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1044766
|
||||
Patch9: ltrace-0.7.91-cant_open.patch
|
||||
|
||||
# Support Aarch64 architecture.
|
||||
Patch10: ltrace-0.7.91-aarch64.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1064406
|
||||
Patch11: ltrace-0.7.2-e_machine.patch
|
||||
|
||||
# Support for ppc64le, backported from upstream.
|
||||
# http://anonscm.debian.org/gitweb/?p=collab-maint/ltrace.git;a=commit;h=eea4ad2cce289753aaa35b4e0258a76d8f8f367c
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1131956
|
||||
Patch13: ltrace-0.7.91-ppc64le-support.patch
|
||||
# 35a9677dc9dcb7909ebd28f30200474d7e8b660f,
|
||||
# 437d2377119036346f4dbd93039c847b4cc9d0be,
|
||||
# eb3993420734f091cde9a6053ca6b4edcf9ae334
|
||||
Patch14: ltrace-0.7.91-ppc64le-fixes.patch
|
||||
|
||||
# http://anonscm.debian.org/gitweb/?p=collab-maint/ltrace.git;a=commit;h=2e9f9f1f5d0fb223b109429b9c904504b7f638e2
|
||||
# http://anonscm.debian.org/gitweb/?p=collab-maint/ltrace.git;a=commit;h=f96635a03b3868057db5c2d7972d5533e2068345
|
||||
Patch15: ltrace-0.7.91-parser-ws_after_id.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1171165
|
||||
# http://anonscm.debian.org/cgit/collab-maint/ltrace.git/commit/?id=d8f1287b85e2c2b2ae0235809e956f4365e53c45
|
||||
# http://anonscm.debian.org/cgit/collab-maint/ltrace.git/commit/?id=d80c5371454383e3f9978622e5578cf02af8c44c
|
||||
# http://anonscm.debian.org/cgit/collab-maint/ltrace.git/commit/?id=bf82100966deda9c7d26ad085d97c08126a8ae88
|
||||
Patch16: ltrace-0.7.91-ppc-bias.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1158714
|
||||
Patch17: ltrace-0.7.91-x86-plt_map.patch
|
||||
Patch18: ltrace-0.7.91-x86-unused_label.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1170315
|
||||
Patch19: ltrace-0.7.91-unwind-elfutils.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1208351
|
||||
# http://anonscm.debian.org/cgit/collab-maint/ltrace.git/commit/?id=4724bd5a4a19db117a1d280b9d1a3508fd4e03fa
|
||||
# http://anonscm.debian.org/cgit/collab-maint/ltrace.git/commit/?id=72ee29639c55b5942bc07c8ed0013005f8fc5a97
|
||||
Patch20: ltrace-0.7.91-multithread-no-f-1.patch
|
||||
Patch21: ltrace-0.7.91-multithread-no-f-2.patch
|
||||
|
||||
# Fix problems with building a number of test cases.
|
||||
# http://anonscm.debian.org/cgit/collab-maint/ltrace.git/commit/?id=694d19ff14017926454771cbb63a22355b72f1bf
|
||||
# http://anonscm.debian.org/cgit/collab-maint/ltrace.git/commit/?id=a3a03622fb4ca9772dca13eae724a94ba1e728f4
|
||||
Patch22: ltrace-0.7.91-testsuite-includes.patch
|
||||
Patch23: ltrace-0.7.91-testsuite-includes-2.patch
|
||||
|
||||
# https://bugzilla.redhat.com/show_bug.cgi?id=1210653
|
||||
# http://anonscm.debian.org/cgit/collab-maint/ltrace.git/commit/?id=eea6091f8672b01f7f022b0fc367e0f568225ffc
|
||||
Patch24: ltrace-0.7.91-ppc64le-configure.patch
|
||||
|
||||
Patch25: ltrace-rh1307754.patch
|
||||
|
||||
# GCC now warns (errors) on "tautological compares", and readdir_r is deprecated.
|
||||
Patch26: ltrace-0.7.91-tautology.patch
|
||||
|
||||
# ARM code has unreachable code after switch statement, move initialization
|
||||
Patch27: ltrace-rh1423913.patch
|
||||
|
||||
# AARCH64 large parameters and syscall testsuite fixes.
|
||||
Patch28: ltrace-0.7.91-aarch64-params.patch
|
||||
|
||||
# gcc-9 fix. Avoid passing NULL as argument to %s
|
||||
Patch29: ltrace-0.7.91-null.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
|
||||
|
||||
Patch37: ltrace-0.7.91-W-use-after-free.patch
|
||||
|
||||
%description
|
||||
Ltrace is a debugging program which runs a specified command until the
|
||||
command exits. While the command is executing, ltrace intercepts and
|
||||
|
|
@ -146,43 +28,6 @@ execution of processes.
|
|||
|
||||
%prep
|
||||
%setup -q -n %{name}-%{version}
|
||||
%patch0 -p1
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%patch8 -p1
|
||||
%patch9 -p1
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
%patch17 -p1
|
||||
%patch18 -p1
|
||||
%patch19 -p1
|
||||
%patch20 -p1
|
||||
%patch21 -p1
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
%patch24 -p1
|
||||
%patch25 -p1
|
||||
%patch26 -p1
|
||||
%patch27 -p1
|
||||
%patch28 -p1
|
||||
%patch29 -p1
|
||||
%patch30 -p1
|
||||
%patch31 -p1
|
||||
%patch32 -p1
|
||||
%patch33 -p1
|
||||
%patch34 -p1
|
||||
%patch35 -p1
|
||||
%patch36 -p1
|
||||
%patch37 -p1
|
||||
|
||||
%build
|
||||
autoreconf -i
|
||||
|
|
@ -210,6 +55,36 @@ echo ====================TESTING END=====================
|
|||
%{_datadir}/ltrace
|
||||
|
||||
%changelog
|
||||
* Tue Sep 16 2025 DJ Delorie <dj@redhat.com> - 0.8.1-1
|
||||
- Rebased to ltrace 0.8.1
|
||||
|
||||
* Thu Jul 24 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-53
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
|
||||
|
||||
* Fri Jan 17 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-52
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
|
||||
|
||||
* Thu Jul 18 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-51
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
|
||||
|
||||
* Thu Jan 25 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-50
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Sun Jan 21 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-49
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
|
||||
|
||||
* Thu Jul 20 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-48
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
|
||||
|
||||
* Thu Jan 19 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-47
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
|
||||
|
||||
* Thu Jul 21 2022 Fedora Release Engineering <releng@fedoraproject.org> - 0.7.91-46
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild
|
||||
|
||||
* Fri May 03 2022 Carlos O'Donell <carlos@redhat.com> - 0.7.91-45
|
||||
- Rebuild ltrace for rawhide (#2046722)
|
||||
|
||||
* Thu Jan 27 2022 DJ Delorie <dj@redhat.com> - 0.7.91-44
|
||||
- Fix use-after-free cases.
|
||||
|
||||
|
|
|
|||
|
|
@ -3,4 +3,4 @@ discover:
|
|||
how: fmf
|
||||
directory: tests
|
||||
execute:
|
||||
how: beakerlib
|
||||
how: tmt
|
||||
|
|
|
|||
2
sources
2
sources
|
|
@ -1 +1 @@
|
|||
9db3bdee7cf3e11c87d8cc7673d4d25b ltrace-0.7.91.tar.bz2
|
||||
SHA512 (ltrace-0.8.1.tar.bz2) = 68fdf10abb3c9534987cb4fcf2531502f8376c56299d56908406ba903fa63af2e0a82c3b902ed0cd47e4985154155a4e9387a11ada066515de26486301dddbaf
|
||||
|
|
|
|||
|
|
@ -8,6 +8,8 @@
|
|||
|
||||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <sys/wait.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void child() {
|
||||
printf("Fork Child\n");
|
||||
|
|
@ -24,7 +26,7 @@ int main() {
|
|||
child();
|
||||
else {
|
||||
printf("My child pid is %d\n",pid);
|
||||
wait();
|
||||
wait(NULL);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,8 +55,8 @@ rlJournalStart
|
|||
fi
|
||||
;;
|
||||
esac
|
||||
elif rlIsRHEL 9 && [[ $PACKAGE =~ ^ltrace ]] && [ "$(arch)" = "ppc64le" ]; then
|
||||
rlLogWarning "RHEL-9 ltrace fails to trace system binaries on ppc64le due to bz#1906881, hence skipping failure checking"
|
||||
elif rlIsRHEL ">=9" && [[ $PACKAGE =~ ^ltrace ]] && [ "$(arch)" = "ppc64le" ]; then
|
||||
rlLogWarning "RHEL >=9 ltrace fails to trace system binaries on ppc64le due to bz#1906881, hence skipping failure checking"
|
||||
skip_test=1
|
||||
elif rlIsFedora 33 && [ "$(arch)" = "ppc64le" ]; then
|
||||
rlLogWarning "FC33 ltrace fails to trace system binaries on ppc64le due to bz#1902770, hence skipping failure checking"
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
#include <netdb.h>
|
||||
#include <netinet/in.h>
|
||||
#include <sys/socket.h>
|
||||
#include <unistd.h>
|
||||
|
||||
|
||||
#ifndef NI_MAXHOST
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@ export TESTVERSION=1.0
|
|||
|
||||
BUILT_FILES=
|
||||
|
||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE reproducer.c
|
||||
|
||||
.PHONY: all install download clean
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
#include <unistd.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
alarm(42);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -28,11 +28,12 @@ rlJournalStart
|
|||
rlAssertRpm $(rpm -qf $(which gcc))
|
||||
rlShowRunningKernel
|
||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
||||
rlRun "cp reproducer.c $TmpDir"
|
||||
rlRun "pushd $TmpDir"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest "ltrace with -o and -c options tracing testing binary"
|
||||
rlRun "echo 'int main(){alarm(42);return 0;}'| gcc -x c -o test.bin -"
|
||||
rlRun "gcc -x c -o test.bin reproducer.c"
|
||||
rlRun "ltrace -o ltrace-test.log -c ./test.bin" 0 "ltrace is crunching a testing binary"
|
||||
rlRun -l "cat ltrace-test.log"
|
||||
rlAssertGrep "alarm" ltrace-test.log
|
||||
|
|
@ -58,8 +59,8 @@ rlJournalStart
|
|||
fi
|
||||
;;
|
||||
esac
|
||||
elif rlIsRHEL 9 && [[ $PACKAGE =~ ^ltrace ]] && [ "$(arch)" = "ppc64le" ]; then
|
||||
rlLogWarning "RHEL-9 ltrace fails to trace system binaries on ppc64le due to bz#1906881, hence skipping failure checking"
|
||||
elif rlIsRHEL ">=9" && [[ $PACKAGE =~ ^ltrace ]] && [ "$(arch)" = "ppc64le" ]; then
|
||||
rlLogWarning "RHEL >=9 ltrace fails to trace system binaries on ppc64le due to bz#1906881, hence skipping failure checking"
|
||||
skip_system_binary_test=1
|
||||
elif rlIsFedora 33 && [ "$(arch)" = "ppc64le" ]; then
|
||||
rlLogWarning "FC33 ltrace fails to trace system binaries on ppc64le due to bz#1902770, hence skipping failure checking"
|
||||
|
|
@ -67,15 +68,22 @@ rlJournalStart
|
|||
fi
|
||||
|
||||
# ltrace no longer reports __libc_start_main on rhel-8 x86_64 (rhbz#1654734)
|
||||
if grep "ioctl" ltrace-test-sys.log; then
|
||||
# search for either malloc or ioctl.
|
||||
func_found=0
|
||||
for traced_func in "malloc" "ioctl"; do
|
||||
if grep "$traced_func" ltrace-test-sys.log; then
|
||||
func_found=1
|
||||
fi
|
||||
done
|
||||
if [ $func_found -ne 0 ]; then
|
||||
if [ $skip_system_binary_test ]; then
|
||||
rlLogWarning "Test was skipped but it seems ok. Review skip check."
|
||||
fi
|
||||
else
|
||||
if [ $skip_system_binary_test ]; then
|
||||
rlLogInfo "ltrace output does not contain ioctl calls (expected failure)"
|
||||
rlLogInfo "ltrace output does not contain ioctl or malloc calls (expected failure)"
|
||||
else
|
||||
rlFail "ltrace output does not contain ioctl calls"
|
||||
rlFail "ltrace output does not contain ioctl or malloc calls"
|
||||
fi
|
||||
fi
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ rlJournalStart
|
|||
#include <stdio.h>
|
||||
#include <sys/types.h>
|
||||
#include <pwd.h>
|
||||
#include <unistd.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ CMD='ltrace'
|
|||
BIN=$(which --skip-alias $CMD)
|
||||
PACKAGE="${PACKAGE:-$(rpm -qf --qf='%{name}\n' $BIN)}"
|
||||
|
||||
if rlIsRHEL 9 || rlIsFedora; then
|
||||
if rlIsRHEL ">=9" || rlIsFedora; then
|
||||
PROC_NAME=dbus-broker
|
||||
SERVICE_NAME=dbus-broker
|
||||
elif rlIsRHEL 6; then
|
||||
|
|
@ -46,19 +46,19 @@ fi
|
|||
rlJournalStart
|
||||
rlPhaseStartSetup
|
||||
rlAssertRpm $PACKAGE
|
||||
rlRun "pgrep $PROC_NAME || service $SERVICE_NAME start" 0 "Checking/starting $SERVICE_NAME"
|
||||
rlRun "pgrep -x $PROC_NAME || service $SERVICE_NAME start" 0 "Checking/starting $SERVICE_NAME"
|
||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
||||
rlRun "pushd $TmpDir"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
rlRun "PID=$(pidof $PROC_NAME)"
|
||||
rlRun "PID='$(pidof -s $PROC_NAME)'"
|
||||
# try to ltrace dbus-daemon. If there is a bug (BZ#1360259), it will crash
|
||||
rlWatchdog "ltrace -S -p $PID > output.log 2>&1" 30 INT
|
||||
rlAssertEquals "ltrace is expected to be terminated by watchdog" 1 "$?"
|
||||
rlLog "output.log: $(cat output.log)"
|
||||
rlAssertNotGrep "\(Assertion.*failed\|Segmentation fault\)" output.log
|
||||
rlAssertEquals "$PROC_NAME is expected to be still running" $PID "$(pidof $PROC_NAME)"
|
||||
rlAssertEquals "$PROC_NAME is expected to be still running" $PID "$(pidof -s $PROC_NAME)"
|
||||
rlFileSubmit output.log
|
||||
rlPhaseEnd
|
||||
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ export TESTVERSION=1.0
|
|||
|
||||
BUILT_FILES=
|
||||
|
||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE reproducer.c
|
||||
|
||||
.PHONY: all install download clean
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ recommend:
|
|||
- gcc
|
||||
- libgcc
|
||||
- glibc-devel
|
||||
- libgcc.i686
|
||||
- glibc-devel.i686
|
||||
duration: 5m
|
||||
link:
|
||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=868281
|
||||
|
|
|
|||
|
|
@ -0,0 +1,7 @@
|
|||
#include <unistd.h>
|
||||
|
||||
int main()
|
||||
{
|
||||
alarm(42);
|
||||
return 0;
|
||||
}
|
||||
|
|
@ -39,14 +39,16 @@ rlJournalStart
|
|||
rlAssertRpm $LTRACE_RPM
|
||||
rlAssertRpm $GCC_RPM
|
||||
rlAssertRpm $BINUTILS_RPM
|
||||
for arch in $(rlGetPrimaryArch) $(rlGetSecondaryArch); do
|
||||
ARCH="$(rlGetPrimaryArch)"
|
||||
SARCH="$(rlGetSecondaryArch)"
|
||||
for arch in $ARCH $SARCH; do
|
||||
rlCheckRpm glibc.$arch
|
||||
done
|
||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
||||
rlRun "cp reproducer.c $TmpDir"
|
||||
rlRun "pushd $TmpDir"
|
||||
|
||||
if [ -d /usr/lib64 ]; then
|
||||
ARCH=`uname -i`
|
||||
if [[ $ARCH =~ s390.* ]]; then
|
||||
if rlIsRHEL '>=8'; then
|
||||
rlLogInfo "RHEL-8 and newer do not support s390x 31-bit compilation"
|
||||
|
|
@ -62,6 +64,9 @@ rlJournalStart
|
|||
elif [[ $ARCH =~ ia64|aarch64|ppc64le ]]; then
|
||||
rlLogInfo "$ARCH does not support 32-bit compilation"
|
||||
MBITS=
|
||||
elif rlIsRHEL ">=10"; then
|
||||
rlLogInfo "RHEL >=10 does not support 32-bit packages"
|
||||
MBITS=
|
||||
else
|
||||
MBITS=32
|
||||
fi
|
||||
|
|
@ -69,11 +74,11 @@ rlJournalStart
|
|||
|
||||
rlLogInfo "MBITS=$MBITS"
|
||||
|
||||
rlRun "echo 'int main(){alarm(42);return 0;}'| $GCC -fPIE -pie -x c -o a-native.out -"
|
||||
rlRun "$GCC -fPIE -pie -x c reproducer.c -o a-native.out"
|
||||
rlAssertExists a-native.out
|
||||
|
||||
if [ -n "$MBITS" ]; then
|
||||
rlRun "echo 'int main(){alarm(42);return 0;}'| $GCC -fPIE -pie -m$MBITS -x c -o a-$MBITS.out -"
|
||||
rlRun "$GCC -fPIE -pie -m$MBITS -x c reproducer.c -o a-$MBITS.out"
|
||||
rlAssertExists a-$MBITS.out
|
||||
fi
|
||||
rlPhaseEnd
|
||||
|
|
|
|||
|
|
@ -28,7 +28,7 @@ void *sub_thd(void *c)
|
|||
sub_func();
|
||||
}
|
||||
|
||||
main(int argc, char *argv[])
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
int i;
|
||||
pthread_t thd[NTHD];
|
||||
|
|
@ -39,5 +39,6 @@ main(int argc, char *argv[])
|
|||
pthread_create(&thd[i], NULL, sub_thd, NULL);
|
||||
}
|
||||
// pause();
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void *start (void *arg) {
|
||||
return arg;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
#include <pthread.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void *start (void *arg) {
|
||||
return arg;
|
||||
|
|
|
|||
|
|
@ -1,10 +1,11 @@
|
|||
#include <sys/stat.h>
|
||||
#include <fcntl.h>
|
||||
#include <linux/sem.h>
|
||||
#include <pthread.h>
|
||||
#include <sys/mman.h>
|
||||
#include <signal.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/sem.h>
|
||||
#include <unistd.h>
|
||||
//#include "trigger_error.h"
|
||||
#define THREAD_NUM 100
|
||||
|
|
@ -17,6 +18,14 @@ int fullid;
|
|||
int emptyid;
|
||||
int mutxid;
|
||||
|
||||
union semun
|
||||
{
|
||||
int val; /* Value for SETVAL */
|
||||
struct semid_ds *buf; /* Buffer for IPC_STAT, IPC_SET */
|
||||
unsigned short *array; /* Array for GETALL, SETALL */
|
||||
struct seminfo *__buf; /* Buffer for IPC_INFO (Linux-specific) */
|
||||
};
|
||||
|
||||
void *thread_handle_a(void *temp);
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <errno.h>
|
||||
#include <pthread.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/time.h>
|
||||
|
|
|
|||
|
|
@ -53,10 +53,16 @@ rlJournalStart
|
|||
rlRun "dnf builddep -y $NVR.src.rpm"
|
||||
rlRun "rpm --define='_topdir $TMP' -Uvh $NVR.src.rpm"
|
||||
rlRun "${RPMBUILD_GCC:+CC=$RPMBUILD_GCC} rpmbuild --define='_topdir $TMP' -bc SPECS/${CMD}.spec"
|
||||
|
||||
MAKEFILE_PATH=$(ls BUILD/${CMD}-*/Makefile 2>/dev/null)
|
||||
if [[ -z "$MAKEFILE_PATH" ]]; then
|
||||
MAKEFILE_PATH=$(ls BUILD/${CMD}-*/${CMD}-*/Makefile 2>/dev/null)
|
||||
fi
|
||||
rlLogInfo "MAKEFILE_PATH=$MAKEFILE_PATH"
|
||||
rlPhaseEnd
|
||||
|
||||
rlPhaseStartTest
|
||||
rlRun "pushd BUILD/${CMD}-*"
|
||||
rlRun "pushd ${MAKEFILE_PATH%/Makefile}"
|
||||
|
||||
# known issues to be ignored
|
||||
ignore_list=''
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue