Compare commits

..

46 commits

Author SHA1 Message Date
Miloš Prchlík
542e13fc39 Add coverage for RHEL-69758 2025-01-29 12:25:49 +01:00
Miloš Prchlík
b103e458d2 Batch update of various changes 2024-11-07 16:26:31 +01:00
Miloš Prchlík
f48051f6b9 Add coverage for RHEL-59802 2024-11-07 15:23:07 +01:00
Miloš Prchlík
0c3b5465a2 Add coverage for RHEL-59801 2024-11-07 14:37:42 +01:00
Miloš Prchlík
d5fdfa740c Batch update of various changes 2024-11-04 13:08:07 +01:00
Miloš Prchlík
763a84b98a Batch update of various changes 2024-11-01 14:09:16 +01:00
Miloš Prchlík
71e0f1ccf4 RHEL-30268: fix relevancy 2024-08-26 10:00:16 +02:00
Miloš Prchlík
07c482bdc6 TLS-variable-wrongly-relocated-on-debug-info: no gcc-toolset-14-gdb on RHEL9 2024-08-21 14:08:46 +02:00
Miloš Prchlík
3efa80f3f1 Fix Backport-relro_padding-entsize-fix test reproducer 2024-08-15 21:02:30 +02:00
Miloš Prchlík
8b1bcc91ef Add coverage for RHEL-50536
Backport .relro_padding entsize fix
2024-08-15 10:40:57 +02:00
Miloš Prchlík
6d5a02bb0c Avoid-creating-gaps-between-adjacent-LOAD-segments: fix reproducer 2024-08-12 08:30:31 +00:00
Miloš Prchlík
4f0f922a50 Add tier machinery support 2024-08-09 13:56:32 +02:00
Miloš Prchlík
7391c5eea6 Add coverage for RHEL-45873
binutils: Avoid creating gaps between adjacent LOAD segments
2024-08-08 19:19:18 +02:00
Miloš Prchlík
54e002d31a The-binutils-package-contains-the-windmc-1-manual: fix wc -l output processing 2024-08-07 10:42:47 +00:00
Miloš Prchlík
77ed99d023 Support gcc-toolset-14 2024-08-06 12:10:33 +00:00
Miloš Prchlík
ad56a109c1 Fix _topdir expansion in rpm rebuilds 2024-08-06 11:09:11 +02:00
Miloš Prchlík
2a1c1558d3 Add shellcheck and a custom linter for test field 2024-07-31 10:01:30 +02:00
Miloš Prchlík
d38c5a7ff5 Add coverage for RHEL-42954
binutils: Disable separate-code for aarch64
2024-07-03 15:11:58 +02:00
Miloš Prchlík
fe07b4e4c8 Add "verifies" links to the upstream test suite 2024-07-02 16:39:34 +02:00
Miloš Prchlík
bb2d005a7c Make RHEL-39953 aarch64-only 2024-07-02 16:35:26 +02:00
Miloš Prchlík
4d3c8a8953 Add coverage for RHEL-42765
Aarch64: Fix DT_RELR with discarded sections
2024-07-02 16:32:50 +02:00
Miloš Prchlík
b9e16fe4fb Add test for RHEL-30268
objcopy doesn't align sections with --section-alignment/--set-section-alignment
2024-07-02 16:08:47 +02:00
Miloš Prchlík
19950b928d Test coverage for RHEL-36305 2024-06-28 19:47:36 +02:00
Miloš Prchlík
32bdc99ae0 More RHEL-10 test cases 2024-06-28 15:28:52 +02:00
Miloš Prchlík
9552328aff Add coverage for RHEL-39953 2024-06-27 14:27:53 +02:00
Miloš Prchlík
f494379f4c Enable the needed repositories on RHEL-10 2024-06-27 11:32:24 +02:00
Miloš Prchlík
b3d0caa90a Support RHEL-9.5 2024-05-21 14:21:22 +02:00
Miloš Prchlík
bbbf15f1b4 Fix yamllint in pre-commit
It did not run correctly.
2024-04-25 23:06:23 +02:00
Miloš Prchlík
f1137fbe40 Add support for Fedora 40 2024-04-09 08:44:53 +02:00
Miloš Prchlík
c322925444 More RHEL-10 fixes 2024-04-02 10:37:57 +02:00
Miloš Prchlík
339bd547f7 Add basic RHEL-10 support 2024-03-26 13:29:04 +01:00
Miloš Prchlík
40f1e47045 Make CPU HW requirement apply on non-s390x only 2024-02-25 19:38:40 +01:00
Miloš Prchlík
c3dc3043f9 Add HW requirements for gating plans 2024-02-23 13:48:48 +01:00
Miloš Prchlík
a8497b043f /tests/bugs/AVX-512-support-in-binutils: limit to x86_64 2024-02-22 18:34:29 +00:00
Miloš Prchlík
015d146dac /tests/rebuilds/kernel: tee build log 2024-02-22 12:17:03 +01:00
Miloš Prchlík
398a2caaab Skip gcc-toolset-13-gprofng in RHEL-9 on ppc64le & s390x 2024-02-14 13:56:35 +01:00
Miloš Prchlík
d1f19f0f88 Fix Add-.debug_pubtypes-and-.debug_ranges-to-builtin-ld-linker-script for RHEL-8.6.0 2024-02-05 15:47:22 +01:00
Miloš Prchlík
03a0db98eb Port tests 2024-01-30 12:08:39 +00:00
Miloš Prchlík
80ee2b7248 Update and fix based on recent gcc-toolset-13 regression runs 2024-01-29 12:18:44 +00:00
Miloš Prchlík
ac2524a04d Fix /tests/supported-targets for Fedora 40 2024-01-29 09:04:30 +01:00
Miloš Prchlík
65f6377e31 Fix plan triggers to reflect reality 2024-01-23 14:22:55 +00:00
Miloš Prchlík
5745d8c2cf /tests/bugs/holes-in-debuginfo: fix reproducer to not dies because of missing declarations 2024-01-23 14:21:57 +00:00
Miloš Prchlík
d48cb1b731 Fedora 38 tweaks 2024-01-23 09:13:04 +01:00
Miloš Prchlík
760121284d Use correct kernel package for rebuild on Fedora 39 and newer 2024-01-19 13:19:33 +00:00
Miloš Prchlík
68d4849898 Move tmpdirs to / on Fedora 39 and newer 2024-01-19 13:19:33 +00:00
Miloš Prchlík
45fcc73ca7 Update requirements for gcc-toolset-13-binutils on RHEL9/CentOS Stream 9 2024-01-17 09:57:33 +01:00
81 changed files with 4653 additions and 112 deletions

View file

@ -6,6 +6,7 @@ repos:
rev: v4.4.0 rev: v4.4.0
hooks: hooks:
- id: check-added-large-files - id: check-added-large-files
args: ["--maxkb=600"]
- id: check-case-conflict - id: check-case-conflict
- id: check-executables-have-shebangs - id: check-executables-have-shebangs
- id: check-merge-conflict - id: check-merge-conflict
@ -26,9 +27,32 @@ repos:
rev: v1.32.0 rev: v1.32.0
hooks: hooks:
- id: yamllint - id: yamllint
types: [file]
files: "^.*?\\.fmf$" files: "^.*?\\.fmf$"
- repo: https://github.com/teemtee/tmt.git - repo: https://github.com/teemtee/tmt.git
rev: "1.26.0" rev: "1.26.0"
hooks: hooks:
- id: tmt-lint - id: tmt-lint
# - repo: https://github.com/koalaman/shellcheck-precommit
# rev: v0.7.2
# hooks:
# - id: shellcheck
# args: ["--severity=warning"] # Optionally only show errors and warnings
- repo: local
hooks:
- id: shellcheck
name: shellcheck
description: Test shell scripts with shellcheck
entry: shellcheck
language: python
types: [shell]
require_serial: true # shellcheck can detect sourcing this way
- id: custom-lint-checks
name: custom-lint-checks
entry: custom-lint-checks.sh
language: script
pass_filenames: false

10
.yamllint Normal file
View file

@ -0,0 +1,10 @@
---
extends: default
rules:
document-start:
present: false
line-length:
max: 120

37
custom-lint-checks.sh Executable file
View file

@ -0,0 +1,37 @@
#!/bin/bash
RETVAL=0
DELIMITER='=============================================================================='
echo -e "\n${DELIMITER}\nChecking WITH_SCL in tests' main.fmf\n"
# shellcheck disable=SC2044
for i in $(find . -name main.fmf); do
[ "$i" = "./tests/dts-probe-binaries/main.fmf" ] && continue
if grep -q '^test:.*test\.sh' "$i"; then
# shellcheck disable=SC2016
if ! grep -qF 'test: "$WITH_SCL ./test.sh"' "$i"; then
echo "$i does not use WITH_SCL in 'test:'"
RETVAL=1
fi
fi
done
echo "$DELIMITER"
echo -e "\n${DELIMITER}\nChecking for '!=' and ',' used together\n"
# shellcheck disable=SC2044
for i in $(find . -name '*.fmf' -type f); do
if grep -qE 'when:.*!=\s*[a-z0-9_]+,' "$i"; then
echo "$i uses '!=' and ',' together in 'when:'"
grep -E 'when:.*!=\s*[a-z0-9_]+,' "$i"
RETVAL=1
fi
done
echo "$DELIMITER"
echo -en "\nOVERALL RESULT: "
[[ "$RETVAL" -eq 0 ]] && echo PASS || echo FAIL
exit $RETVAL

View file

@ -4,21 +4,45 @@
summary: "Build/PR gating tests for binutils" summary: "Build/PR gating tests for binutils"
provision:
hardware:
disk:
- size: ">= 60 GiB"
# Adjust rules # Adjust rules
adjust+: adjust+:
- because: "Plan to be ran when executed locally, or executed by CI system to gate a build or PR." - because: >-
Plan to be ran when executed locally, in tier runs,
or executed by CI system to gate a build or PR.
# `commit` is used by Fedora CI, CentOS Stream CI, `build` by BaseOS CI
# `compose` is used by Tier machinery
when: >- when: >-
trigger is defined trigger is defined
and trigger != commit and trigger != commit
and trigger != build and trigger != build
and initiator != compose
enabled: false enabled: false
- because: "On CentOS Stream 10, CRB repository must be enabled for various BuildRequires"
when: distro == centos-stream-10
prepare+:
- how: shell
script: dnf config-manager --set-enabled crb
- because: "On CentOS Stream 9, CRB repository must be enabled for various BuildRequires" - because: "On CentOS Stream 9, CRB repository must be enabled for various BuildRequires"
when: distro == centos-stream-9 when: distro == centos-stream-9
prepare+: prepare+:
- how: shell - how: shell
script: dnf config-manager --set-enabled crb script: dnf config-manager --set-enabled crb
- because: "On RHEL-10, CRB and buildroot repositories must be enabled for various BuildRequires"
when: distro == rhel-10
prepare+:
- how: shell
script:
- dnf config-manager --set-enabled rhel-CRB
- dnf config-manager --set-enabled rhel-buildroot
- because: "On RHEL-9, CRB and buildroot repositories must be enabled for various BuildRequires" - because: "On RHEL-9, CRB and buildroot repositories must be enabled for various BuildRequires"
when: distro == rhel-9 when: distro == rhel-9
prepare+: prepare+:
@ -35,22 +59,20 @@ adjust+:
- dnf config-manager --set-enabled rhel-CRB - dnf config-manager --set-enabled rhel-CRB
- dnf config-manager --set-enabled rhel-buildroot - dnf config-manager --set-enabled rhel-buildroot
- when: arch != s390x
provision+:
hardware+:
cpu:
processors: ">= 8"
/common: /common:
discover: discover:
- how: fmf - how: fmf
filter: "tag:gate-build" filter: "tag:gate-build"
exclude: '^/tests/rebuilds/kernel$' exclude: '^/tests/rebuilds/kernel$'
/kernel-rebuild: /kernel-rebuild:
discover: discover:
- how: fmf - how: fmf
filter: "tag:gate-build" filter: "tag:gate-build"
test: '^/tests/rebuilds/kernel$' test: '^/tests/rebuilds/kernel$'
# provision:
# - how: virtual
# hardware:
# disk:
# - size: ">= 120 GiB"
# cpu:
# processors: ">= 8"

View file

@ -10,12 +10,25 @@ discover:
# Adjust rules # Adjust rules
adjust+: adjust+:
- because: "Plan to be ran when executed locally, or executed by CI system after updating an erratum." - because: >-
Plan to be ran when executed locally, in tier runs,
or executed by CI system after updating an erratum/bodhi update.
# `build` is used by Bodhi
# `compose` is used by Tier machinery
when: >- when: >-
trigger is defined trigger is defined
and trigger != update and trigger != build
and initiator != compose
enabled: false enabled: false
- because: "On RHEL-10, CRB and buildroot repositories must be enabled for various BuildRequires"
when: distro == rhel-10
prepare+:
- how: shell
script:
- dnf config-manager --set-enabled rhel-CRB
- dnf config-manager --set-enabled rhel-buildroot
- because: "On CentOS Stream 9, CRB repository must be enabled for various BuildRequires" - because: "On CentOS Stream 9, CRB repository must be enabled for various BuildRequires"
when: distro == centos-stream-9 when: distro == centos-stream-9
prepare+: prepare+:

View file

@ -0,0 +1,13 @@
summary: Assembles a procedure with AVX-512 instructions.
link+:
- verifies: https://bugzilla.redhat.com/show_bug.cgi?id=1140375
contact+:
- Arjun Shankar <ashankar@redhat.com>
duration: 5m
adjust+:
- when: arch != x86_64
enabled: false

View file

@ -0,0 +1,56 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/binutils/Regression/bz1140375-AVX-512-support-in-binutils
# Description: Assembles a procedure with AVX-512 instructions.
# Author: Arjun Shankar <ashankar@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2014 Red Hat, Inc.
#
# 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
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
buCopyReproducers tst-auditmod10a.s
rlPhaseEnd
rlPhaseStartTest
rlRun "as tst-auditmod10a.s -o tst-auditmod10a.o"
rlAssertExists "tst-auditmod10a.o"
rlRun "objdump -d tst-auditmod10a.o > tst-auditmod10a.disas"
rlLog "Interesting instructions:"
rlLog "$(grep zmm tst-auditmod10a.disas)"
rlAssertGrep "vmovdqa64" tst-auditmod10a.disas
rlAssertGrep "vpbroadcastq" tst-auditmod10a.disas
rlAssertGrep "vpxord" tst-auditmod10a.disas
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

File diff suppressed because it is too large Load diff

View file

@ -7,3 +7,23 @@ contact+:
link+: link+:
- verifies: https://bugzilla.redhat.com/show_bug.cgi?id=241252 - verifies: https://bugzilla.redhat.com/show_bug.cgi?id=241252
environment+:
DWARF5: "yes"
adjust+:
- when: distro == rhel-8.10
environment+:
DWARF5: "no"
- when: distro == rhel-8.6.0
environment+:
DWARF5: "no"
- when: distro == rhel-8 and collection == gcc-toolset-14
environment+:
DWARF5: "no"
- when: distro == rhel-8 and collection == gcc-toolset-13
environment+:
DWARF5: "no"

View file

@ -28,8 +28,15 @@
rlJournalStart rlJournalStart
rlPhaseStartSetup rlPhaseStartSetup
buTestHeader buTestHeader
rlLogInfo "DWARF5=$DWARF5"
buEnterTmpDir buEnterTmpDir
buCopyReproducers "x.i y.i" buCopyReproducers "x.i y.i"
if [ "$DWARF5" = "yes" ]; then
rlRun "SECTION_NAME=debug_rnglists"
else
rlRun "SECTION_NAME=debug_ranges"
fi
rlPhaseEnd rlPhaseEnd
rlPhaseStartTest rlPhaseStartTest
@ -37,14 +44,15 @@ rlJournalStart
rlRun "gcc -c -O2 -fpic -o y.o y.i -g" 0 "Compile test case 'y'" rlRun "gcc -c -O2 -fpic -o y.o y.i -g" 0 "Compile test case 'y'"
rlRun "gcc -Wl,--unique -o x [xy].o" 0 "Link 'x' and 'y'" rlRun "gcc -Wl,--unique -o x [xy].o" 0 "Link 'x' and 'y'"
# Note: debug_ranges replaced by debug_rnglist (since DWARF 5 in Fedora 34)
rlLogInfo 'x.o + y.o:' rlLogInfo 'x.o + y.o:'
rlLogInfo "$( readelf -WS [xy].o | grep debug_rnglist | grep PROGBITS )" rlRun "readelf -WS [xy].o"
rlRun "readelf -WS x"
rlLogInfo "$( readelf -WS [xy].o | grep "$SECTION_NAME" | grep PROGBITS )"
rlLogInfo 'x:' rlLogInfo 'x:'
rlLogInfo "$( readelf -WS x | grep debug_rnglist )" rlLogInfo "$( readelf -WS x | grep "$SECTION_NAME" )"
if [ $( readelf -WS [xy].o | grep debug_rnglist | grep PROGBITS | wc -l ) -eq 2 ] \ if [ "$( readelf -WS [xy].o | grep "$SECTION_NAME" | grep -c PROGBITS )" -eq 2 ] \
&& [ $( readelf -WS x | grep debug_rnglist | wc -l ) -eq 1 ]; then && [ "$( readelf -WS x | grep -c "$SECTION_NAME" )" -eq 1 ]; then
rlPass "Debug ranges sections were merged" rlPass "Debug ranges sections were merged"
else else
rlFail "Debug ranges sections were not merged" rlFail "Debug ranges sections were not merged"

View file

@ -0,0 +1,15 @@
summary: Avoid creating gaps between adjacent LOAD segments
duration: 24h
require+:
- rpm-build
- tree
- /usr/bin/python3
link+:
- verifies: https://issues.redhat.com/browse/RHEL-45873
adjust+:
- when: distro < rhel-9.5
enabled: false

View file

@ -0,0 +1,89 @@
#!/usr/bin/env sh
ITER=${1:-10000}
echo "Testing with $(rpm -q binutils)..."
pagesz=$(getconf PAGESIZE)
echo "Testing with a page size of $pagesz"
GLIBC_SCRIPTS="$(readlink -f $(rpm --define="_topdir $TmpDir" --eval=%_builddir)/glibc-*/scripts)"
test() {
y=$(($1 * 7))
f=obj$y
gcc -O2 -fpie -pie -DN=$y t.c -Wl,-z,relro,-z,now -o $f
PYTHONPATH="$GLIBC_SCRIPTS:$PYTHONPATH" python3 tst-load-segment-gaps.py $f >> verbose.log
ret=$?
rm $f
return $ret
}
rm -f verbose.log
cat > t.c <<EOF
#include <stdio.h>
#include <stdlib.h>
#include <err.h>
#include <sys/prctl.h>
#include <unistd.h>
const char *const array[] = {
[N] = "value",
};
#define BUF_SZ 2048
void pmap() {
FILE *f;
size_t bytes;
char *buffer = malloc(BUF_SZ);
if (buffer == NULL)
err(EXIT_FAILURE, NULL);
f = fopen("/proc/self/maps", "r");
if (f == NULL)
err(EXIT_FAILURE, NULL);
while ((bytes = fread(buffer, 1, BUF_SZ, f)) > 0)
fwrite(buffer, 1, bytes, stdout);
if (ferror(f))
perror(NULL);
fclose(f);
free(buffer);
}
int main (void)
{
prctl(PR_SET_DUMPABLE, 0,0, 0);
char **volatile p = (char **)array;
pmap();
__builtin_puts(p[N]);
}
EOF
errors=0
# Print a blank line that we will rewrite later.
echo
for x in $(seq $ITER) ; do
p=$(($x * 100 / $ITER))
echo -e '\e[1A\e[K Progress:' "$p% Errors: $errors"
if ! test $x; then
errors=$(($errors + 1))
fi
done
rm t.c
if [[ "$errors" -eq 0 ]]; then
echo "The test succeeded!"
else
percent=$(($errors * 100 / $ITER))
echo "Error: tests had a $percent% failure rate" >&2
exit 1
fi

View file

@ -0,0 +1,27 @@
#!/bin/bash
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
buCopyReproducers "repro.sh tst-load-segment-gaps.py"
buPrepareSRPM "glibc"
buConfigureSRPM "glibc"
rlPhaseEnd
rlPhaseStartTest
rlRun "./repro.sh"
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,74 @@
#!/usr/bin/python3
# Verify that objects do not contain gaps in load segments.
# Copyright (C) 2024 Free Software Foundation, Inc.
# This file is part of the GNU C Library.
#
# The GNU C Library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License as published by the Free Software Foundation; either
# version 2.1 of the License, or (at your option) any later version.
#
# The GNU C Library 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
# Lesser General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public
# License along with the GNU C Library; if not, see
# <https://www.gnu.org/licenses/>.
import argparse
import os.path
import sys
# Make available glibc Python modules.
sys.path.append(os.path.join(
os.path.dirname(os.path.realpath(__file__)), os.path.pardir, 'scripts'))
import glibcelf
def rounddown(val, align):
assert (align & (align - 1)) == 0, align
return val & -align
def roundup(val, align):
assert (align & (align - 1)) == 0, align
return (val + align - 1) & -align
errors = False
def process(path, img):
global errors
loads = [phdr for phdr in img.phdrs()
if phdr.p_type == glibcelf.Pt.PT_LOAD]
if not loads:
# Nothing ot check.
return
alignments = [phdr.p_align for phdr in loads if phdr.p_align > 0]
if alignments:
align = min(alignments)
else:
print('error: cannot infer page size')
errors = True
align = 4096
print('info: inferred page size:', align)
current_address = None
for idx, phdr in enumerate(loads):
this_address = rounddown(phdr.p_vaddr, align)
next_address = roundup(phdr.p_vaddr + phdr.p_memsz, align)
print('info: LOAD segment {}: address 0x{:x}, size {},'
' range [0x{:x},0x{:x})'
.format(idx, phdr.p_vaddr, phdr.p_memsz,
this_address, next_address))
if current_address is not None:
gap = this_address - current_address
if gap != 0:
errors = True
print('error: gap between load segments: {} bytes'.format(gap))
current_address = next_address
for path in sys.argv[1:]:
img = glibcelf.Image.readfile(path)
process(path, img)
if errors:
sys.exit(1)

View file

@ -0,0 +1,13 @@
summary: Backport .relro_padding entsize fix
duration: 5m
require+:
- xz
link+:
- verifies: https://issues.redhat.com/browse/RHEL-50536
adjust+:
- when: distro != rhel-9 or distro < rhel-9.5.0
enabled: false

View file

@ -0,0 +1,28 @@
#!/bin/bash
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
buCopyReproducers "libclang.so.18.1.xz"
rlRun "unxz $TmpDir/libclang.so.18.1.xz"
rlPhaseEnd
rlPhaseStartTest
rlRun "objcopy $TmpDir/libclang.so.18.1 $TmpDir/libclang.so.18.1.copy"
rlRun "readelf --section-headers $TmpDir/libclang.so.18.1"
rlRun -s "readelf --section-headers $TmpDir/libclang.so.18.1.copy"
rlAssertEquals "entsize has expected value" "00" "$(grep -E '.relro_padding' "$rlRun_LOG" | awk '{print $7}')"
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,12 @@
summary: Backport selective allocation of PGSTE to avoid
description: |
Backport selective allocation of PGSTE to avoid global vm.allocate_pgste
link+:
- verifies: https://bugzilla.redhat.com/show_bug.cgi?id=1140375
duration: 15m
adjust+:
- when: arch != s390x
enabled: false

View file

@ -0,0 +1,4 @@
.text
.global fred
fred:
nop

View file

@ -0,0 +1,52 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/binutils/Regression/bz1485398-Backport-selective-allocation-of-PGSTE-to-avoid
# Description: Test for BZ#1485398 (Backport selective allocation of PGSTE to avoid)
# Author: Milos Prchlik <mprchlik@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2018 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, see http://www.gnu.org/licenses/.
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
buCopyReproducers repr.s
rlPhaseEnd
rlPhaseStartTest
rlRun "as repr.s -o repr.o"
rlRun "ld -e 0 repr.o -o repr.no-pgste.exe"
rlRun "ld -e 0 repr.o -o repr.pgste.exe --s390-pgste"
rlRun "readelf -l repr.no-pgste.exe | grep PGSTE" 1
rlRun "readelf -l repr.pgste.exe | grep PGSTE" 0
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -46,7 +46,7 @@ rlJournalStart
rlPhaseStartTest rlPhaseStartTest
rlRun "gcc v.c -fPIC -shared -olibv.so" rlRun "gcc v.c -fPIC -shared -olibv.so"
rlRun "gcc u.c -fPIC -shared -olibu.so" rlRun "gcc u.c -fPIC -shared -olibu.so"
rlRun "gcc t.c -D_GNU_SOURCE -L. -lu -lv -ldl -Wl,-rpath,`pwd` &> out" rlRun "gcc t.c -D_GNU_SOURCE -L. -lu -lv -ldl -Wl,-rpath,$(pwd) &> out"
rlLogInfo "$(cat out)" rlLogInfo "$(cat out)"
rlAssertNotGrep "warning: hidden symbol .* is referenced" out rlAssertNotGrep "warning: hidden symbol .* is referenced" out
rlRun "./a.out" rlRun "./a.out"

View file

@ -0,0 +1,10 @@
summary: Disable separate-code for aarch64
duration: 10m
link+:
- verifies: https://issues.redhat.com/browse/RHEL-42954
adjust+:
- when: arch == x86_64
enabled: false

View file

@ -0,0 +1,5 @@
extern int printf (const char *, ...);
int i = 42;
const int * j = & i;
int main (void) { return printf ("hello world %d\n", * j); }

View file

@ -0,0 +1,31 @@
#!/bin/bash
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
buCopyReproducers "reproducer.c"
rlPhaseEnd
rlPhaseStartTest
rlRun "gcc -O0 -o reproducer reproducer.c"
rlRun "readelf -lW ./reproducer |& tee output"
rlAssertEquals "only two LOAD sections are expected" "$(grep -c "LOAD" output)" "2"
rlRun "gcc -O0 -o reproducer -Wl,-z,separate-code reproducer.c"
rlRun "readelf -lW ./reproducer |& tee output"
rlAssertEquals "four LOAD sections are expected" "$(grep -c "LOAD" output)" "4"
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,10 @@
summary: ELFv2 @localentry not supported by RHEL7.1 LE
link+:
- verifies: https://bugzilla.redhat.com/show_bug.cgi?id=1194164
duration: 15m
adjust+:
- when: arch != ppc64le and arch != ppc64
enabled: false

View file

@ -0,0 +1,49 @@
#!/bin/bash
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /CoreOS/binutils/Regression/bz1194164-ELFv2-localentry-not-supported-by-RHEL7-1-LE
# Description: Test for BZ#1194164 (ELFv2 @localentry not supported by RHEL7.1 LE)
# Author: Milos Prchlik <mprchlik@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2015 Red Hat, Inc.
#
# 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
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
rlRun "echo '.quad foo@localentry' > reproducer.s"
rlPhaseEnd
rlPhaseStartTest
rlRun "as -a64 reproducer.s"
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,20 @@
summary: Static linking results in misleading error message
description: |+
This:
/usr/bin/ld: cannot find -lc
becomes this:
/usr/bin/ld: cannot find -lc
/usr/bin/ld: have you installed the static version of the c library ?
duration: 5m
link:
- verifies: https://issues.redhat.com/browse/RHEL-69758
adjust+:
- when: distro < rhel-9.6
enabled: false

View file

@ -0,0 +1,27 @@
#!/bin/bash
# source the test script helpers
. /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
rlRun "echo 'int main(int argc, char **argv) { return 1; }' > main.c"
rlPhaseEnd
rlPhaseStartTest
rlRun -s "gcc -static -lfoo" 1
rlAssertGrep "cannot find -lfoo" "$rlRun_LOG"
rlAssertGrep "have you installed the static version of the foo library ?" "$rlRun_LOG"
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -40,13 +40,13 @@ rlJournalStart
rlPhaseEnd rlPhaseEnd
for ld in $( ls {/emul/ia32-linux,}/lib*/ld-2* 2> /dev/null); do for ld in $( ls {/emul/ia32-linux,}/lib*/ld-2* 2> /dev/null); do
rlPhaseStartTest "${ld} from $( rpmquery -f ${ld} )" rlPhaseStartTest "$ld from $( rpmquery -f "$ld" )"
filename="$( basename ${ld} ).readline" filename="$( basename "$ld" ).readline"
rlRun "readelf -S ${ld} > $filename" 0 "[$( basename ${ld} )] Write section headers of ${ld}" rlRun "readelf -S $ld > $filename" 0 "[$( basename "$ld" )] Write section headers of $ld"
if ! [[ "$( rlGetArch )" == "ia64" && ! "${ld}" =~ "emul" ]]; then if ! [[ "$( rlGetArch )" == "ia64" && ! "${ld}" =~ "emul" ]]; then
rlAssertGrep ".stapsdt.base " $filename || rlLogError "This may be problem for SystemTap" rlAssertGrep ".stapsdt.base " "$filename" || rlLogError "This may be problem for SystemTap"
fi fi
rlAssertNotGrep ".stapsdt.base.1" $filename || rlLogError "This may be problem for SystemTap" rlAssertNotGrep ".stapsdt.base.1" "$filename" || rlLogError "This may be problem for SystemTap"
rlPhaseEnd rlPhaseEnd
done done

View file

@ -9,6 +9,18 @@ require+:
- gdb - gdb
adjust+: adjust+:
- when: collection == gcc-toolset-14 and distro == rhel-9
require+:
- gdb
environment+:
REQUIRES: gdb
- when: collection == gcc-toolset-14 and distro == rhel-8
require+:
- gcc-toolset-14-gdb
environment+:
REQUIRES: gcc-toolset-14-gdb
- when: collection == gcc-toolset-13 - when: collection == gcc-toolset-13
require+: require+:
- gcc-toolset-13-gdb - gcc-toolset-13-gdb

View file

@ -40,7 +40,7 @@ rlJournalStart
rlPhaseStartTest rlPhaseStartTest
rlRun "rpm -ql $PACKAGES | grep windmc > windmc.txt" 0,1 rlRun "rpm -ql $PACKAGES | grep windmc > windmc.txt" 0,1
rlLogInfo "$(cat windmc.txt)" rlLogInfo "$(cat windmc.txt)"
rlRun "FILE_CNT=`cat windmc.txt | wc -l`" rlRun "FILE_CNT=$(wc -l windmc.txt | awk '{print $1}')"
if [ "$FILE_CNT" == "1" ]; then if [ "$FILE_CNT" == "1" ]; then
rlFail "Either windmg manpage or binary is present - both options are wrong." rlFail "Either windmg manpage or binary is present - both options are wrong."
elif [ "$FILE_CNT" == "2" ]; then elif [ "$FILE_CNT" == "2" ]; then

View file

@ -0,0 +1,10 @@
summary: Backport the -error-execstack option to RHEL9
duration: 5m
link:
- verifies: https://issues.redhat.com/browse/RHEL-59801
adjust+:
- when: distro < rhel-9.6.0
enabled: false

View file

@ -0,0 +1,7 @@
extern int foo (int (*)(int));
int bar (int arg)
{
int baz (int arg2) { return arg2 * arg; }
return foo (& baz) + arg;
}

View file

@ -0,0 +1,27 @@
#!/bin/bash
. /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
buCopyReproducers reproducer.c
rlPhaseEnd
rlPhaseStartTest "Verify the default is a warning"
rlRun -s "gcc -o reproducer reproducer.c" 1
rlAssertGrep "warning: .* requires executable stack" $rlRun_LOG
rlPhaseEnd
rlPhaseStartTest "Verify error an be requested"
rlRun -s "gcc -o reproducer reproducer.c -Wl,--error-execstack" 1
rlAssertGrep "error: .* is triggering the generation of an executable stack" $rlRun_LOG
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,10 @@
summary: Backport the -error-execstack option to RHEL9
duration: 5m
link:
- verifies: https://issues.redhat.com/browse/RHEL-59801
adjust+:
- when: distro < rhel-9.6.0
enabled: false

View file

@ -0,0 +1,4 @@
int main(int argc, char **argv)
{
return 0;
}

View file

@ -0,0 +1,5 @@
SECTIONS
{
.text : { *(.text) }
.data : { *(.data) }
}

View file

@ -0,0 +1,27 @@
#!/bin/bash
. /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
buCopyReproducers "reproducer.c script.ld"
rlPhaseEnd
rlPhaseStartTest "Verify the default is a warning"
rlRun -s "gcc -o reproducer reproducer.c -Wl,-T,script.ld" 1
rlAssertGrep "warning: reproducer has a LOAD segment with RWX permissions" $rlRun_LOG
rlPhaseEnd
rlPhaseStartTest "Verify error an be requested"
rlRun -s "gcc -o reproducer reproducer.c -Wl,-T,script.ld -Wl,--error-rwx-segments" 1
rlAssertGrep "error: reproducer has a LOAD segment with RWX permissions" $rlRun_LOG
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -0,0 +1,13 @@
summary: Checks that 'as' supports CRC32 instructions on aarch64
link+:
- verifies: https://bugzilla.redhat.com/show_bug.cgi?id=1179810
contact+:
- Arjun Shankar <ashankar@redhat.com>
duration: 5m
adjust+:
- when: arch != aarch64
enabled: false

View file

@ -0,0 +1,5 @@
int
main (void)
{
return 0;
}

View file

@ -0,0 +1,51 @@
#!/bin/bash
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# runtest.sh of /tools/binutils/Regression/bz1179810-aarch64-crc32-instruction-support
# Description: Checks that 'as' supports CRC32 instructions on aarch64
# Author: Arjun Shankar <ashankar@redhat.com>
#
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#
# Copyright (c) 2015 Red Hat, Inc.
#
# 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
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
buCopyReproducers minimal.c
rlPhaseEnd
rlPhaseStartTest
rlRun "gcc -Wa,-mcpu=generic+crc -o minimal minimal.c"
rlRun "./minimal" # this won't generate any CRC32 instructions, it's
# just a sanity test.
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -36,7 +36,7 @@ rlJournalStart
rlPhaseEnd rlPhaseEnd
rlPhaseStartTest rlPhaseStartTest
rpm -qd $PACKAGES | grep 'man' | while read -r m; do rpm -qd "$PACKAGES" | grep 'man' | while read -r m; do
rlLog "$m" rlLog "$m"
man "$m" | col -b > man.txt man "$m" | col -b > man.txt
rlRun "[[ $(wc -c <man.txt) -ge 2000 ]]" rlRun "[[ $(wc -c <man.txt) -ge 2000 ]]"

View file

@ -56,7 +56,7 @@ rlJournalStart
if [ $HAS_SUPPORT = 1 ]; then if [ $HAS_SUPPORT = 1 ]; then
rlPhaseStartTest rlPhaseStartTest
rlAssertExists $KO_FILE rlAssertExists "$KO_FILE"
rlRun "set -o pipefail" 0 "Conserve the non-zero return value through the pipe" rlRun "set -o pipefail" 0 "Conserve the non-zero return value through the pipe"
# As suggested by nickc@redhat.com: # As suggested by nickc@redhat.com:

View file

@ -1,4 +1,4 @@
summary: bytecode stream in file /opt/rh/gcc-toolset-13/root/usr/lib64/libbfd.a generated with LTO version 11.3 instead of the expected 13.0 summary: bytecode stream in file /opt/rh/gcc-toolset-13/root/usr/lib64/libbfd.a generated with LTO version 11.3
duration: 10m duration: 10m

View file

@ -9,8 +9,8 @@ link+:
- verifies: https://bugzilla.redhat.com/show_bug.cgi?id=1366145 - verifies: https://bugzilla.redhat.com/show_bug.cgi?id=1366145
adjust+: adjust+:
# DWZ is not available in RHEL-6 - unless you have collection installed, # DWZ is not available in RHEL-6 - unless you have collection installed,
# then you can use (and test) dwz from collection package. # then you can use (and test) dwz from collection package.
- when: distro == rhel-6 and collection is not defined - when: distro == rhel-6 and collection is not defined
enabled: false enabled: false
@ -20,6 +20,12 @@ adjust+:
environment+: environment+:
REQUIRES: dwz REQUIRES: dwz
- when: collection == gcc-toolset-14
require+:
- gcc-toolset-14-dwz
environment+:
REQUIRES: gcc-toolset-14-dwz
- when: collection == gcc-toolset-13 - when: collection == gcc-toolset-13
require+: require+:
- gcc-toolset-13-dwz - gcc-toolset-13-dwz

View file

@ -42,10 +42,10 @@ rlJournalStart
if [ "${EABI_file}" ]; then if [ "${EABI_file}" ]; then
rlLog "EABI_file = $EABI_file" rlLog "EABI_file = $EABI_file"
rlRun "cp -v $EABI_file $TmpDir" 0 "Copy file with GNU/Linux EABI" rlRun "cp -v $EABI_file $TmpDir" 0 "Copy file with GNU/Linux EABI"
local_binary="$(basename ${EABI_file})" local_binary="$(basename "$EABI_file")"
rlAssertExists ${local_binary} rlAssertExists "$local_binary"
rlRun "strip -R .comment ${local_binary}" rlRun "strip -R .comment $local_binary"
file $local_binary > out file "$local_binary" > out
rlAssertNotGrep "(SYSV)" out rlAssertNotGrep "(SYSV)" out
else else
rlDie "There's nothing to test." rlDie "There's nothing to test."

View file

@ -1,3 +1,6 @@
extern void k(int);
extern void l(int, int*);
void f(int i) { void f(int i) {
k(i); k(i);
} }

View file

@ -47,7 +47,7 @@ rlJournalStart
rlLogInfo "$(cat out)" rlLogInfo "$(cat out)"
rlAssertGrep "SONAME must not be empty string; ignored" out rlAssertGrep "SONAME must not be empty string; ignored" out
rlRun "objdump -p libfoo.so | grep SONAME | awk '{print \$2}' > soname" rlRun "objdump -p libfoo.so | grep SONAME | awk '{print \$2}' > soname"
if [ "`stat -c '%s' soname`" != "0" ]; then if [ "$(stat -c '%s' soname)" != "0" ]; then
rlLogInfo "SONAME='$(cat soname)'" rlLogInfo "SONAME='$(cat soname)'"
rlFail "Detected SONAME is empty" rlFail "Detected SONAME is empty"
fi fi

View file

@ -0,0 +1,13 @@
summary: objcopy doesn't align sections with --section-alignment/--set-section-alignment
duration: 15m
require+:
- python3-virt-firmware
link+:
- verifies: https://issues.redhat.com/browse/RHEL-30268
adjust+:
- when: distro < rhel-9
enabled: false

View file

@ -0,0 +1,15 @@
#!/bin/bash
set -eu
while read -r line; do
section="$(echo "$line" | sed -r 's/^.+\(\.([a-z]+)\)$/\1/')"
address="$(echo "$line" | sed -r 's/^.+ file (0x[0-9a-z]+).+$/\1/')"
echo "$section @$address"
if ((address % 512 != 0)); then
echo "Section $section alignment is not multiple of 512"
exit 1
fi
done < <(pe-inspect "$1" | grep --text "section")
echo "All OK"

View file

@ -0,0 +1,39 @@
#!/bin/bash
# Include Beaker environment
. /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1
rlJournalStart
rlPhaseStartSetup
buTestHeader
buEnterTmpDir
buCopyReproducers "repro.sh linuxx64.efi.stub linuxx64.elf.stub"
rlPhaseEnd
rlPhaseStartTest
rlRun "objcopy -v --file-alignment=512 --section-alignment=512 --target=efi-app-x86_64 -j .text -j .data -j .dynamic linuxx64.elf.stub foo.pe"
rlRun "pe-inspect foo.pe"
rlRun "./repro.sh foo.pe"
rlRun "objcopy -v --file-alignment=512 --section-alignment=512 --target=efi-app-x86_64 -j .text -j .data -j .dynamic -j .sbat linuxx64.elf.stub foo.pe"
rlRun "pe-inspect foo.pe"
rlRun "./repro.sh foo.pe"
rlRun "objcopy -v --file-alignment=512 --section-alignment=512 --target=efi-app-x86_64 -j .text -j .data -j .dynamic linuxx64.efi.stub foo.pe"
rlRun "pe-inspect foo.pe"
rlRun "./repro.sh foo.pe"
rlRun "objcopy -v --file-alignment=512 --section-alignment=512 --target=efi-app-x86_64 -j .text -j .data -j .dynamic -j .sbat linuxx64.efi.stub foo.pe"
rlRun "pe-inspect foo.pe"
rlRun "./repro.sh foo.pe"
rlPhaseEnd
rlPhaseStartCleanup
buExitTmpDir
rlPhaseEnd
rlJournalPrintText
rlJournalEnd

View file

@ -35,11 +35,11 @@ __have_kernel_debuginfo () {
local RELEASE ARCH local RELEASE ARCH
rlRun "RELEASE=$(uname -r)" rlRun "RELEASE=$(uname -r)"
rlRun "ARCH=$(uname -m)" rlRun "ARCH=$(uname -m)"
if ! rpm -q kernel-debuginfo-$RELEASE &>/dev/null; then if ! rpm -q "kernel-debuginfo-$RELEASE" &>/dev/null; then
rlLogInfo 'kernel-debuginfo not present, trying to install it' rlLogInfo 'kernel-debuginfo not present, trying to install it'
rlRun "dnf install -y --enablerepo=\*debuginfo kernel-debuginfo-$RELEASE" rlRun "dnf install -y --enablerepo=\*debuginfo kernel-debuginfo-$RELEASE"
fi fi
rlAssertRpm kernel-debuginfo-$RELEASE rlAssertRpm "kernel-debuginfo-$RELEASE"
} }
rlJournalStart rlJournalStart

View file

@ -5,7 +5,7 @@ description: |
stripping with strip works fine. stripping with strip works fine.
contact+: contact+:
- Michal Nowak <mnowak@redhat.com> - Michal Nowak <mnowak@redhat.com>
require+: require+:
- glibc-static - glibc-static

View file

@ -43,6 +43,16 @@ rlJournalStart
rlRun "strings -n 0 2>&1 | tee output" rlRun "strings -n 0 2>&1 | tee output"
if rlIsFedora "> 39"; then if rlIsFedora "> 39"; then
rlAssertGrep "minimum string length is too small: 0" output rlAssertGrep "minimum string length is too small: 0" output
elif rlIsCentOS ">= 10"; then
rlAssertGrep "minimum string length is too small: 0" output
elif rlIsRHEL ">= 10"; then
rlAssertGrep "minimum string length is too small: 0" output
elif rlIsRHEL ">= 10" && [ "$TOOLSET" = "gcc-toolset-14" ]; then
rlAssertGrep "minimum string length is too small: 0" output
else else
rlAssertGrep "invalid minimum string length 0" output rlAssertGrep "invalid minimum string length 0" output
fi fi
@ -52,6 +62,16 @@ rlJournalStart
rlRun "strings --bytes 0 2>&1 | tee output" rlRun "strings --bytes 0 2>&1 | tee output"
if rlIsFedora "> 39"; then if rlIsFedora "> 39"; then
rlAssertGrep "minimum string length is too small: 0" output rlAssertGrep "minimum string length is too small: 0" output
elif rlIsCentOS ">= 10"; then
rlAssertGrep "minimum string length is too small: 0" output
elif rlIsRHEL ">= 10"; then
rlAssertGrep "minimum string length is too small: 0" output
elif rlIsRHEL ">= 10" && [ "$TOOLSET" = "gcc-toolset-14" ]; then
rlAssertGrep "minimum string length is too small: 0" output
else else
rlAssertGrep "invalid minimum string length 0" output rlAssertGrep "invalid minimum string length 0" output
fi fi

View file

@ -24,6 +24,18 @@ require+:
environment+: environment+:
REQUIRES: "binutils gcc gcc-c++ glibc gdb" REQUIRES: "binutils gcc gcc-c++ glibc gdb"
# Older format of undefined symbols, the second `@` has been dropped in
# https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=3f2e9699234ca31d083bc93ea6e03903f10baeaf
LEGACY_UNDEFINED_SYMBOLS: "no"
adjust+: adjust+:
- when: collection is not defined - when: collection is not defined
enabled: false enabled: false
- when: distro == rhel-8 and collection == gcc-toolset-14
environment+:
LEGACY_UNDEFINED_SYMBOLS: "yes"
- when: distro == rhel-8 and collection == gcc-toolset-13
environment+:
LEGACY_UNDEFINED_SYMBOLS: "yes"

View file

@ -61,6 +61,7 @@ rlJournalStart
rlLogInfo "READELF=$READELF" rlLogInfo "READELF=$READELF"
rlLogInfo "SIZE=$SIZE" rlLogInfo "SIZE=$SIZE"
rlLogInfo "STRINGS=$STRINGS" rlLogInfo "STRINGS=$STRINGS"
rlLogInfo "LEGACY_UNDEFINED_SYMBOLS=$LEGACY_UNDEFINED_SYMBOLS"
buEnterTmpDir buEnterTmpDir
@ -184,7 +185,7 @@ fi
rlAssertGrep "virtual2.C" o rlAssertGrep "virtual2.C" o
fi fi
rlAssertGrep "_ZN1BD1Ev" o rlAssertGrep "_ZN1BD1Ev" o
if [ "$COLLECTIONS" != "devtoolset-11" ]; then if [ "$TOOLSET" != "devtoolset-11" ]; then
rlAssertGrep ".dynstr" o rlAssertGrep ".dynstr" o
fi fi
# On PPC, we have .toc instead. # On PPC, we have .toc instead.
@ -196,8 +197,14 @@ fi
if [ "`rlGetPrimaryArch`" != "ppc64" ] || [ ! rlIsRHEL 7 ]; then if [ "`rlGetPrimaryArch`" != "ppc64" ] || [ ! rlIsRHEL 7 ]; then
rlAssertGrep "__gmon_start__" u rlAssertGrep "__gmon_start__" u
fi fi
rlAssertGrep "printf@GLIBC" u # Older format, the second `@` has been dropped in https://sourceware.org/git/?p=binutils-gdb.git;a=commit;h=3f2e9699234ca31d083bc93ea6e03903f10baeaf
rlAssertGrep "__libc_start_main@GLIBC" u if [ "$LEGACY_UNDEFINED_SYMBOLS" = "yes" ]; then
rlAssertGrep "printf@@GLIBC" u
rlAssertGrep "__libc_start_main@@GLIBC" u
else
rlAssertGrep "printf@GLIBC" u
rlAssertGrep "__libc_start_main@GLIBC" u
fi
# Try -P --size-sort. # Try -P --size-sort.
rlRun "nm -P --size-sort localplt > p" rlRun "nm -P --size-sort localplt > p"
if test $(uname -m) = "ppc64" -a $(rlGetDistroRelease) -gt 5; then if test $(uname -m) = "ppc64" -a $(rlGetDistroRelease) -gt 5; then

View file

@ -34,6 +34,7 @@ function buTestHeader () {
rlLogInfo "PACKAGES=$PACKAGES" rlLogInfo "PACKAGES=$PACKAGES"
rlLogInfo "REQUIRES=$REQUIRES" rlLogInfo "REQUIRES=$REQUIRES"
rlLogInfo "COLLECTIONS=$COLLECTIONS" rlLogInfo "COLLECTIONS=$COLLECTIONS"
rlLogInfo "TOOLSET=$TOOLSET"
rlLogInfo "COLLECTION_PACKAGES=$COLLECTION_PACKAGES" rlLogInfo "COLLECTION_PACKAGES=$COLLECTION_PACKAGES"
rlLogInfo "LD=$_LD" rlLogInfo "LD=$_LD"
rlLogInfo "GCC=$_GCC" rlLogInfo "GCC=$_GCC"
@ -70,9 +71,9 @@ function buTestHeader () {
function buEnterTmpDir () { function buEnterTmpDir () {
rlRun "export TmpDir=$(mktemp -d -p $BU_TMPDIR_PARENT)" 0 "Creating tmp directory" rlRun "export TmpDir=$(mktemp -d -p "$BU_TMPDIR_PARENT")" 0 "Creating tmp directory"
if [ ! -z "$BU_AS_TEST_USER" ]; then if [ -n "$BU_AS_TEST_USER" ]; then
username="${1:-$BU_TEST_USER}" username="${1:-$BU_TEST_USER}"
buEnterTestUser "$username" buEnterTestUser "$username"
@ -91,7 +92,7 @@ function buExitTmpDir () {
rlRun "rm -r $TmpDir" 0 "Removing tmp directory" rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
fi fi
if [ ! -z "$BU_AS_TEST_USER" ]; then if [ -n "$BU_AS_TEST_USER" ]; then
username="${1:-$BU_TEST_USER}" username="${1:-$BU_TEST_USER}"
buExitTestUser "$username" buExitTestUser "$username"
@ -105,18 +106,29 @@ function buPrepareSRPM () {
rlFetchSrcForInstalled "$installed_rpm" rlFetchSrcForInstalled "$installed_rpm"
rlRun "export SRPM=`find . -name '*.src.rpm'`" rlRun "export SRPM=$(find . -name '*.src.rpm')"
rlRun "rpm -ivh --define=\"_topdir $TmpDir\" $SRPM" rlRun "rpm -ivh --define=\"_topdir $TmpDir\" $SRPM"
rlRun "export SPECDIR=`rpm --define=\"_topdir $TmpDir\" --eval=%_specdir`" rlRun "export SPECDIR=$(rpm --define="_topdir $TmpDir" --eval=%_specdir)"
rlRun "export SPECFILE=`find $SPECDIR/ -name '*.spec'`" rlRun "export SPECFILE=$(find "$SPECDIR/" -name '*.spec')"
rlRun "yum-builddep -y --define=\"_topdir $TmpDir\" $builddep_options $SPECFILE" rlRun "yum-builddep -y --define=\"_topdir $TmpDir\" $builddep_options $SPECFILE"
} }
function buConfigureSRPM () {
if [ -n "$BU_AS_TEST_USER" ]; then
username="${1:-$BU_TEST_USER}"
rlRun "su - $username -c 'rpmbuild -bp --define=\"_topdir $TmpDir\" $SPECFILE'"
else
rlRun " rpmbuild -bp --define=\"_topdir $TmpDir\" $SPECFILE"
fi
}
function buBuildSRPM () { function buBuildSRPM () {
if [ ! -z "$BU_AS_TEST_USER" ]; then if [ -n "$BU_AS_TEST_USER" ]; then
username="${1:-$BU_TEST_USER}" username="${1:-$BU_TEST_USER}"
rlRun "su - $username -c 'rpmbuild -bc --define=\"_topdir $TmpDir\" $SPECFILE'" rlRun "su - $username -c 'rpmbuild -bc --define=\"_topdir $TmpDir\" $SPECFILE'"

View file

@ -42,7 +42,12 @@ require+:
# Adjust rules # Adjust rules
adjust+: adjust+:
- because: "/tmp is not big enough to hold tmpdir for tests" - because: "/tmp is not big enough to hold tmpdir for tests"
when: distro == fedora-rawhide,rhel-9 when: distro >= rhel-9
environment+:
BU_TMPDIR_PARENT: "/"
- because: "/tmp is not big enough to hold tmpdir for tests"
when: distro >= fedora-38
environment+: environment+:
BU_TMPDIR_PARENT: "/" BU_TMPDIR_PARENT: "/"
@ -60,13 +65,35 @@ adjust+:
# Environments: # Environments:
# #
# * `PACKAGES` shall be only `binutils` or its collection variant and nothing else # * `PACKAGES` shall be only `binutils` or its collection variant and nothing else
# * `TOOLSET` shall be either the collection name when testing a collection build,
# or left unset. Note that `COLLECTIONS` is left unset completely, it's not used
# by any test
# * `_REQUIRES` lists the default requirements - `gcc`, `gcc-c++` and so on # * `_REQUIRES` lists the default requirements - `gcc`, `gcc-c++` and so on
# * `WITH_SCL` shall be set to `scl enable ...` command to enable the collection before
# running the test script itself, or left unset for non-collection environments
# * `BINUTILS_PACKAGE`, `GCC_PACKAGE` list packages providing active binutils and gcc # * `BINUTILS_PACKAGE`, `GCC_PACKAGE` list packages providing active binutils and gcc
# in the test environment. `BINUTILS_PACKAGE` is usually the same as `PACKAGES` but # in the test environment. `BINUTILS_PACKAGE` is usually the same as `PACKAGES` but
# but complements `GCC_PACKAGE` # but complements `GCC_PACKAGE`
# * `COLLECTION_PACKAGES` lists other binutils packages in the collection # * `COLLECTION_PACKAGES` lists other binutils packages in the collection
# #
# RHEL-10 / no collection
- when: distro == rhel-10 and collection is not defined
require+:
- binutils
- binutils-devel
- binutils-gold
- glibc
- gcc
- gcc-c++
- annobin-annocheck
- annobin-plugin-gcc
environment+:
PACKAGES: binutils
_REQUIRES: gcc gcc-c++ glibc annobin-annocheck annobin-plugin-gcc
BINUTILS_PACKAGE: binutils
GCC_PACKAGE: gcc
# RHEL-9 / no collection # RHEL-9 / no collection
- when: distro == rhel-9 and collection is not defined - when: distro == rhel-9 and collection is not defined
require+: require+:
@ -83,8 +110,64 @@ adjust+:
BINUTILS_PACKAGE: binutils BINUTILS_PACKAGE: binutils
GCC_PACKAGE: gcc GCC_PACKAGE: gcc
# RHEL-9 / gcc-toolset-14
- when: distro == rhel-9 and collection == gcc-toolset-14 and arch == x86_64,aarch64
require+:
- gcc-toolset-14-binutils
- gcc-toolset-14-binutils-devel
- gcc-toolset-14-binutils-gold
- gcc-toolset-14-binutils-gprofng
- gcc-toolset-14-gcc
- gcc-toolset-14-gcc-c++
- gcc-toolset-14-gcc-plugin-annobin
environment+:
PACKAGES: gcc-toolset-14-binutils
TOOLSET: gcc-toolset-14
_REQUIRES: gcc-toolset-14-gcc gcc-toolset-14-gcc-c++ gcc-toolset-14-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-14
BINUTILS_PACKAGE: gcc-toolset-14-binutils
GCC_PACKAGE: gcc-toolset-14-gcc
# yamllint disable-line rule:line-length
COLLECTION_PACKAGES: gcc-toolset-14-binutils gcc-toolset-14-binutils-devel gcc-toolset-14-binutils-gold gcc-toolset-14-binutils-gprofng
- when: distro == rhel-9 and collection == gcc-toolset-14 and arch != x86_64 and arch != aarch64
require+:
- gcc-toolset-14-binutils
- gcc-toolset-14-binutils-devel
- gcc-toolset-14-binutils-gold
- gcc-toolset-14-gcc
- gcc-toolset-14-gcc-c++
- gcc-toolset-14-gcc-plugin-annobin
environment+:
PACKAGES: gcc-toolset-14-binutils
TOOLSET: gcc-toolset-14
_REQUIRES: gcc-toolset-14-gcc gcc-toolset-14-gcc-c++ gcc-toolset-14-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-14
BINUTILS_PACKAGE: gcc-toolset-14-binutils
GCC_PACKAGE: gcc-toolset-14-gcc
COLLECTION_PACKAGES: gcc-toolset-14-binutils gcc-toolset-14-binutils-devel gcc-toolset-14-binutils-gold
# RHEL-9 / gcc-toolset-13 # RHEL-9 / gcc-toolset-13
- when: distro == rhel-9 and collection == gcc-toolset-13 - when: distro == rhel-9 and collection == gcc-toolset-13 and arch == x86_64,aarch64
require+:
- gcc-toolset-13-binutils
- gcc-toolset-13-binutils-devel
- gcc-toolset-13-binutils-gold
- gcc-toolset-13-binutils-gprofng
- gcc-toolset-13-gcc
- gcc-toolset-13-gcc-c++
- gcc-toolset-13-gcc-plugin-annobin
environment+:
PACKAGES: gcc-toolset-13-binutils
TOOLSET: gcc-toolset-13
_REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-13
BINUTILS_PACKAGE: gcc-toolset-13-binutils
GCC_PACKAGE: gcc-toolset-13-gcc
# yamllint disable-line rule:line-length
COLLECTION_PACKAGES: gcc-toolset-13-binutils gcc-toolset-13-binutils-devel gcc-toolset-13-binutils-gold gcc-toolset-13-binutils-gprofng
- when: distro == rhel-9 and collection == gcc-toolset-13 and arch != x86_64 and arch != aarch64
require+: require+:
- gcc-toolset-13-binutils - gcc-toolset-13-binutils
- gcc-toolset-13-binutils-devel - gcc-toolset-13-binutils-devel
@ -94,6 +177,7 @@ adjust+:
- gcc-toolset-13-gcc-plugin-annobin - gcc-toolset-13-gcc-plugin-annobin
environment+: environment+:
PACKAGES: gcc-toolset-13-binutils PACKAGES: gcc-toolset-13-binutils
TOOLSET: gcc-toolset-13
_REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc _REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-13 WITH_SCL: scl enable gcc-toolset-13
BINUTILS_PACKAGE: gcc-toolset-13-binutils BINUTILS_PACKAGE: gcc-toolset-13-binutils
@ -111,6 +195,7 @@ adjust+:
- gcc-toolset-12-gcc-plugin-annobin - gcc-toolset-12-gcc-plugin-annobin
environment+: environment+:
PACKAGES: gcc-toolset-12-binutils PACKAGES: gcc-toolset-12-binutils
TOOLSET: gcc-toolset-12
_REQUIRES: gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-gcc-plugin-annobin glibc _REQUIRES: gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-12 WITH_SCL: scl enable gcc-toolset-12
BINUTILS_PACKAGE: gcc-toolset-12-binutils BINUTILS_PACKAGE: gcc-toolset-12-binutils
@ -135,6 +220,43 @@ adjust+:
BINUTILS_PACKAGE: binutils BINUTILS_PACKAGE: binutils
GCC_PACKAGE: gcc GCC_PACKAGE: gcc
# RHEL-8 / gcc-toolset-14
- when: distro == rhel-8 and collection == gcc-toolset-14 and arch == x86_64,aarch64
require+:
- gcc-toolset-14-binutils
- gcc-toolset-14-binutils-devel
- gcc-toolset-14-binutils-gold
- gcc-toolset-14-binutils-gprofng
- gcc-toolset-14-gcc
- gcc-toolset-14-gcc-c++
- gcc-toolset-14-gcc-plugin-annobin
environment+:
PACKAGES: gcc-toolset-14-binutils
TOOLSET: gcc-toolset-14
_REQUIRES: gcc-toolset-14-gcc gcc-toolset-14-gcc-c++ gcc-toolset-14-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-14
BINUTILS_PACKAGE: gcc-toolset-14-binutils
GCC_PACKAGE: gcc-toolset-14-gcc
# yamllint disable-line rule:line-length
COLLECTION_PACKAGES: gcc-toolset-14-binutils gcc-toolset-14-binutils-devel gcc-toolset-14-binutils-gold gcc-toolset-14-binutils-gprofng
- when: distro == rhel-8 and collection == gcc-toolset-14 and arch != x86_64 and arch != aarch64
require+:
- gcc-toolset-14-binutils
- gcc-toolset-14-binutils-devel
- gcc-toolset-14-binutils-gold
- gcc-toolset-14-gcc
- gcc-toolset-14-gcc-c++
- gcc-toolset-14-gcc-plugin-annobin
environment+:
PACKAGES: gcc-toolset-14-binutils
TOOLSET: gcc-toolset-14
_REQUIRES: gcc-toolset-14-gcc gcc-toolset-14-gcc-c++ gcc-toolset-14-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-14
BINUTILS_PACKAGE: gcc-toolset-14-binutils
GCC_PACKAGE: gcc-toolset-14-gcc
COLLECTION_PACKAGES: gcc-toolset-14-binutils gcc-toolset-14-binutils-devel gcc-toolset-14-binutils-gold
# RHEL-8 / gcc-toolset-13 # RHEL-8 / gcc-toolset-13
- when: distro == rhel-8 and collection == gcc-toolset-13 and arch == x86_64,aarch64 - when: distro == rhel-8 and collection == gcc-toolset-13 and arch == x86_64,aarch64
require+: require+:
@ -147,13 +269,15 @@ adjust+:
- gcc-toolset-13-gcc-plugin-annobin - gcc-toolset-13-gcc-plugin-annobin
environment+: environment+:
PACKAGES: gcc-toolset-13-binutils PACKAGES: gcc-toolset-13-binutils
TOOLSET: gcc-toolset-13
_REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc _REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-13 WITH_SCL: scl enable gcc-toolset-13
BINUTILS_PACKAGE: gcc-toolset-13-binutils BINUTILS_PACKAGE: gcc-toolset-13-binutils
GCC_PACKAGE: gcc-toolset-13-gcc GCC_PACKAGE: gcc-toolset-13-gcc
# yamllint disable-line rule:line-length
COLLECTION_PACKAGES: gcc-toolset-13-binutils gcc-toolset-13-binutils-devel gcc-toolset-13-binutils-gold gcc-toolset-13-binutils-gprofng COLLECTION_PACKAGES: gcc-toolset-13-binutils gcc-toolset-13-binutils-devel gcc-toolset-13-binutils-gold gcc-toolset-13-binutils-gprofng
- when: distro == rhel-8 and collection == gcc-toolset-13 and arch != x86_64,aarch64 - when: distro == rhel-8 and collection == gcc-toolset-13 and arch != x86_64 and arch != aarch64
require+: require+:
- gcc-toolset-13-binutils - gcc-toolset-13-binutils
- gcc-toolset-13-binutils-devel - gcc-toolset-13-binutils-devel
@ -163,6 +287,7 @@ adjust+:
- gcc-toolset-13-gcc-plugin-annobin - gcc-toolset-13-gcc-plugin-annobin
environment+: environment+:
PACKAGES: gcc-toolset-13-binutils PACKAGES: gcc-toolset-13-binutils
TOOLSET: gcc-toolset-13
_REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc _REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-13 WITH_SCL: scl enable gcc-toolset-13
BINUTILS_PACKAGE: gcc-toolset-13-binutils BINUTILS_PACKAGE: gcc-toolset-13-binutils
@ -181,6 +306,8 @@ adjust+:
- gcc-toolset-12-annobin-plugin-gcc - gcc-toolset-12-annobin-plugin-gcc
environment+: environment+:
PACKAGES: gcc-toolset-12-binutils PACKAGES: gcc-toolset-12-binutils
TOOLSET: gcc-toolset-12
# yamllint disable-line rule:line-length
_REQUIRES: gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-gcc-plugin-annobin gcc-toolset-12-annobin-plugin-gcc glibc _REQUIRES: gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-gcc-plugin-annobin gcc-toolset-12-annobin-plugin-gcc glibc
WITH_SCL: scl enable gcc-toolset-12 WITH_SCL: scl enable gcc-toolset-12
BINUTILS_PACKAGE: gcc-toolset-12-binutils BINUTILS_PACKAGE: gcc-toolset-12-binutils
@ -215,15 +342,35 @@ adjust+:
- devtoolset-13-gcc-c++ - devtoolset-13-gcc-c++
environment+: environment+:
PACKAGES: devtoolset-13-binutils PACKAGES: devtoolset-13-binutils
TOOLSET: devtoolset-13
_REQUIRES: devtoolset-13-gcc devtoolset-13-gcc-c++ glibc _REQUIRES: devtoolset-13-gcc devtoolset-13-gcc-c++ glibc
WITH_SCL: scl enable devtoolset-13 WITH_SCL: scl enable devtoolset-13
BINUTILS_PACKAGE: devtoolset-13-binutils BINUTILS_PACKAGE: devtoolset-13-binutils
GCC_PACKAGE: devtoolset-13-gcc GCC_PACKAGE: devtoolset-13-gcc
# yamllint disable-line rule:line-length
COLLECTION_PACKAGES: devtoolset-13-binutils devtoolset-13-binutils-devel devtoolset-13-binutils-gold devtoolset-13-binutils-gprofng COLLECTION_PACKAGES: devtoolset-13-binutils devtoolset-13-binutils-devel devtoolset-13-binutils-gold devtoolset-13-binutils-gprofng
# RHEL-7 / devtoolset-12 # RHEL-7 / devtoolset-12
# RHEL-7 / devtoolset-11 # RHEL-7 / devtoolset-11
# CentOS Stream 10 / no collection
- when: distro == centos-stream-10 and collection is not defined
require+:
- binutils
- binutils-devel
- binutils-gold
- gcc
- gcc-c++
# TODO: CentOS Stream 10
# - annobin
environment+:
PACKAGES: binutils
# TODO: CentOS Stream 10
# _REQUIRES: gcc gcc-c++ glibc annobin
_REQUIRES: gcc gcc-c++ glibc
BINUTILS_PACKAGE: binutils
GCC_PACKAGE: gcc
# CentOS Stream 9 / no collection # CentOS Stream 9 / no collection
- when: distro == centos-stream-9 and collection is not defined - when: distro == centos-stream-9 and collection is not defined
require+: require+:
@ -239,17 +386,40 @@ adjust+:
BINUTILS_PACKAGE: binutils BINUTILS_PACKAGE: binutils
GCC_PACKAGE: gcc GCC_PACKAGE: gcc
# CentOS Stream 9 / gcc-toolset-14
- when: distro == centos-stream-9 and collection == gcc-toolset-14
require+:
- gcc-toolset-14-binutils
- gcc-toolset-14-binutils-devel
- gcc-toolset-14-binutils-gold
# TODO: why is it missing, not being shipped?
# - gcc-toolset-14-binutils-gprofng
- gcc-toolset-14-gcc
- gcc-toolset-14-gcc-c++
- gcc-toolset-14-gcc-plugin-annobin
environment+:
PACKAGES: gcc-toolset-14-binutils
TOOLSET: gcc-toolset-14
_REQUIRES: gcc-toolset-14-gcc gcc-toolset-14-gcc-c++ gcc-toolset-14-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-14
BINUTILS_PACKAGE: gcc-toolset-14-binutils
GCC_PACKAGE: gcc-toolset-14-gcc
COLLECTION_PACKAGES: gcc-toolset-14-binutils gcc-toolset-14-binutils-devel gcc-toolset-14-binutils-gold
# CentOS Stream 9 / gcc-toolset-13 # CentOS Stream 9 / gcc-toolset-13
- when: distro == centos-stream-9 and collection == gcc-toolset-13 - when: distro == centos-stream-9 and collection == gcc-toolset-13
require+: require+:
- gcc-toolset-13-binutils - gcc-toolset-13-binutils
- gcc-toolset-13-binutils-devel - gcc-toolset-13-binutils-devel
- gcc-toolset-13-binutils-gold - gcc-toolset-13-binutils-gold
# TODO: why is it missing, not being shipped?
# - gcc-toolset-13-binutils-gprofng
- gcc-toolset-13-gcc - gcc-toolset-13-gcc
- gcc-toolset-13-gcc-c++ - gcc-toolset-13-gcc-c++
- gcc-toolset-13-gcc-plugin-annobin - gcc-toolset-13-gcc-plugin-annobin
environment+: environment+:
PACKAGES: gcc-toolset-13-binutils PACKAGES: gcc-toolset-13-binutils
TOOLSET: gcc-toolset-13
_REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc _REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-13 WITH_SCL: scl enable gcc-toolset-13
BINUTILS_PACKAGE: gcc-toolset-13-binutils BINUTILS_PACKAGE: gcc-toolset-13-binutils
@ -286,13 +456,14 @@ adjust+:
- gcc-toolset-13-gcc-plugin-annobin - gcc-toolset-13-gcc-plugin-annobin
environment+: environment+:
PACKAGES: gcc-toolset-13-binutils PACKAGES: gcc-toolset-13-binutils
TOOLSET: gcc-toolset-13
_REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc _REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-13 WITH_SCL: scl enable gcc-toolset-13
BINUTILS_PACKAGE: gcc-toolset-13-binutils BINUTILS_PACKAGE: gcc-toolset-13-binutils
GCC_PACKAGE: gcc-toolset-13-gcc GCC_PACKAGE: gcc-toolset-13-gcc
COLLECTION_PACKAGES: gcc-toolset-13-binutils gcc-toolset-13-binutils-devel gcc-toolset-13-binutils-gold COLLECTION_PACKAGES: gcc-toolset-13-binutils gcc-toolset-13-binutils-devel gcc-toolset-13-binutils-gold
- when: distro == centos-stream-8 and collection == gcc-toolset-13 and arch != x86_64,aarch64 - when: distro == centos-stream-8 and collection == gcc-toolset-13 and arch != x86_64 and arch != aarch64
require+: require+:
- gcc-toolset-13-binutils - gcc-toolset-13-binutils
- gcc-toolset-13-binutils-devel - gcc-toolset-13-binutils-devel
@ -302,6 +473,7 @@ adjust+:
- gcc-toolset-13-gcc-plugin-annobin - gcc-toolset-13-gcc-plugin-annobin
environment+: environment+:
PACKAGES: gcc-toolset-13-binutils PACKAGES: gcc-toolset-13-binutils
TOOLSET: gcc-toolset-13
_REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc _REQUIRES: gcc-toolset-13-gcc gcc-toolset-13-gcc-c++ gcc-toolset-13-gcc-plugin-annobin glibc
WITH_SCL: scl enable gcc-toolset-13 WITH_SCL: scl enable gcc-toolset-13
BINUTILS_PACKAGE: gcc-toolset-13-binutils BINUTILS_PACKAGE: gcc-toolset-13-binutils
@ -320,6 +492,8 @@ adjust+:
- gcc-toolset-12-annobin-plugin-gcc - gcc-toolset-12-annobin-plugin-gcc
environment+: environment+:
PACKAGES: gcc-toolset-12-binutils PACKAGES: gcc-toolset-12-binutils
TOOLSET: gcc-toolset-12
# yamllint disable-line rule:line-length
_REQUIRES: gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-gcc-plugin-annobin gcc-toolset-12-annobin-plugin-gcc glibc _REQUIRES: gcc-toolset-12-gcc gcc-toolset-12-gcc-c++ gcc-toolset-12-gcc-plugin-annobin gcc-toolset-12-annobin-plugin-gcc glibc
WITH_SCL: scl enable gcc-toolset-12 WITH_SCL: scl enable gcc-toolset-12
BINUTILS_PACKAGE: gcc-toolset-12-binutils BINUTILS_PACKAGE: gcc-toolset-12-binutils
@ -344,6 +518,22 @@ adjust+:
BINUTILS_PACKAGE: binutils BINUTILS_PACKAGE: binutils
GCC_PACKAGE: gcc GCC_PACKAGE: gcc
# Fedora-40 / no collection
- when: distro == fedora-40 and collection is not defined
require+:
- binutils
- binutils-devel
- binutils-gold
- binutils-gprofng
- gcc
- gcc-c++
- annobin-plugin-gcc
environment+:
PACKAGES: binutils
_REQUIRES: gcc gcc-c++ glibc annobin-plugin-gcc
BINUTILS_PACKAGE: binutils
GCC_PACKAGE: gcc
# Fedora-39 / no collection # Fedora-39 / no collection
- when: distro == fedora-39 and collection is not defined - when: distro == fedora-39 and collection is not defined
require+: require+:

View file

@ -46,10 +46,10 @@ require+:
- net-tools - net-tools
adjust+: adjust+:
- because: "kernel package is gone from Fedora Rawhide default installation" - because: "kernel package is gone from recent Fedora default installation"
when: distro == fedora-rawhide when: distro >= fedora-38
environment+: environment+:
KERNEL: kernel-core KERNEL: kernel-core
- because: "python-devel has different names in different distros" - because: "python-devel has different names in different distros"
when: distro >= rhel-8.6 and distro <= rhel-8.9 when: distro >= rhel-8.6 and distro <= rhel-8.9
@ -66,8 +66,8 @@ adjust+:
require+: require+:
- pesign - pesign
- because: "unifdef is available with RHEL-8.9 and newer" - because: "unifdef is available with RHEL-8.9 and newer and not in RHEL-10"
when: distro >= rhel-8.9 when: distro >= rhel-8.9 and distro != rhel-10
require+: require+:
- unifdef - unifdef
@ -76,6 +76,10 @@ adjust+:
require+: require+:
- ecj - ecj
- because: "kernel rebuild fails because of discovering build issues"
when: collection == gcc-toolset-14
enabled: false
- because: "kernel rebuild fails because of discovering build issues" - because: "kernel rebuild fails because of discovering build issues"
when: collection == gcc-toolset-13 when: collection == gcc-toolset-13
enabled: false enabled: false

View file

@ -89,7 +89,7 @@ rlJournalStart
rlLogInfo "REBOOTCOUNT=$REBOOTCOUNT" rlLogInfo "REBOOTCOUNT=$REBOOTCOUNT"
rlLogInfo "RPM_BUILD_ID=$RPM_BUILD_ID" rlLogInfo "RPM_BUILD_ID=$RPM_BUILD_ID"
rlRun "GCC=$(rpm -ql $GCC_PACKAGE | grep -E 'usr/bin/gcc$')" rlRun "GCC=$(rpm -ql "$GCC_PACKAGE" | grep -E 'usr/bin/gcc$')"
rlLogInfo "GCC=$GCC" rlLogInfo "GCC=$GCC"
rlRun "AFTER_REBOOT=no" rlRun "AFTER_REBOOT=no"
@ -125,13 +125,14 @@ rlJournalStart
rlRun "sed -i \"s/# define buildid .local/%define buildid $RPM_BUILD_ID/\" $SPECFILE" rlRun "sed -i \"s/# define buildid .local/%define buildid $RPM_BUILD_ID/\" $SPECFILE"
fi fi
if [ "`rlGetPrimaryArch`" == "ppc64" ]; then if [ "$(rlGetPrimaryArch)" == "ppc64" ]; then
TARGET="--target=ppc64" TARGET="--target=ppc64"
else else
TARGET="--target=$(uname -m)" TARGET="--target=$(uname -m)"
fi fi
if rlRun "CC=$GCC rpmbuild --define=\"_topdir $TmpDir\" -bb $TARGET --clean $SPECFILE &> BUILD_LOG"; then set -o pipefail
if rlRun "CC=$GCC rpmbuild --define=\"_topdir $TmpDir\" -bb $TARGET --clean $SPECFILE |& tee BUILD_LOG"; then
rlRun "RPMBUILD_OK=yes" rlRun "RPMBUILD_OK=yes"
else else
rlLogInfo "rpmbuild kernel failed" rlLogInfo "rpmbuild kernel failed"
@ -140,6 +141,7 @@ rlJournalStart
log_disk_space log_disk_space
log_rpms log_rpms
fi fi
set +o pipefail
rlBundleLogs "Build-log" BUILD_LOG rlBundleLogs "Build-log" BUILD_LOG
rlPhaseEnd rlPhaseEnd
@ -156,7 +158,7 @@ rlJournalStart
if [ "$(arch)" = "s390x" ]; then if [ "$(arch)" = "s390x" ]; then
rlRun "grubby --info=ALL" rlRun "grubby --info=ALL"
rlLogInfo "Default kernel is $(grubby --default-kernel), index $(grubby --default-index)" rlLogInfo "Default kernel is $(grubby --default-kernel), index $(grubby --default-index)"
rlRun "KERNEL_FILE=$(ls -1 /boot/vmlinuz-*${RPM_BUILD_ID}."$(arch)")" rlRun "KERNEL_FILE=$(ls -1 "/boot/vmlinuz-*${RPM_BUILD_ID}.$(arch)")"
rlRun "ls -al $KERNEL_FILE" rlRun "ls -al $KERNEL_FILE"
rlRun "grubby --set-default $KERNEL_FILE" rlRun "grubby --set-default $KERNEL_FILE"
rlLogInfo "Default kernel is $(grubby --default-kernel), index $(grubby --default-index)" rlLogInfo "Default kernel is $(grubby --default-kernel), index $(grubby --default-index)"

View file

@ -24,3 +24,7 @@ adjust+:
- when: collection == gcc-toolset-13 - when: collection == gcc-toolset-13
environment+: environment+:
COLLECTION_ROOT: /opt/rh/gcc-toolset-13/root COLLECTION_ROOT: /opt/rh/gcc-toolset-13/root
- when: collection == gcc-toolset-14
environment+:
COLLECTION_ROOT: /opt/rh/gcc-toolset-14/root

View file

@ -0,0 +1,16 @@
aarch64
arm
armv2
armv2a
armv3
armv3m
armv4
armv4t
armv5
armv5t
armv5te
xscale
ep9312
iwmmxt
iwmmxt2
plugin

View file

@ -0,0 +1,15 @@
elf64-littleaarch64
elf64-bigaarch64
elf32-littlearm
elf32-bigarm
elf64-little
elf64-big
elf32-little
elf32-big
plugin
srec
symbolsrec
verilog
tekhex
binary
ihex

View file

@ -0,0 +1,27 @@
rs6000:6000
rs6000:rs1
rs6000:rsc
rs6000:rs2
powerpc:common64
powerpc:common
powerpc:603
powerpc:EC603e
powerpc:604
powerpc:403
powerpc:601
powerpc:620
powerpc:630
powerpc:a35
powerpc:rs64ii
powerpc:rs64iii
powerpc:7400
powerpc:e500
powerpc:e500mc
powerpc:e500mc64
powerpc:MPC8XX
powerpc:750
powerpc:titan
powerpc:vle
powerpc:e5500
powerpc:e6500
plugin

View file

@ -0,0 +1,18 @@
elf64-powerpc
elf64-powerpcle
elf32-powerpc
elf32-powerpcle
aixcoff-rs6000
aixcoff64-rs6000
aix5coff64-rs6000
elf64-little
elf64-big
elf32-little
elf32-big
plugin
srec
symbolsrec
verilog
tekhex
binary
ihex

View file

@ -0,0 +1,27 @@
rs6000:6000
rs6000:rs1
rs6000:rsc
rs6000:rs2
powerpc:common64
powerpc:common
powerpc:603
powerpc:EC603e
powerpc:604
powerpc:403
powerpc:601
powerpc:620
powerpc:630
powerpc:a35
powerpc:rs64ii
powerpc:rs64iii
powerpc:7400
powerpc:e500
powerpc:e500mc
powerpc:e500mc64
powerpc:MPC8XX
powerpc:750
powerpc:titan
powerpc:vle
powerpc:e5500
powerpc:e6500
plugin

View file

@ -0,0 +1,19 @@
elf64-powerpcle
elf64-powerpc
elf32-powerpcle
elf32-powerpc
aixcoff-rs6000
aixcoff64-rs6000
aix5coff64-rs6000
elf64-little
elf64-big
elf32-little
elf32-big
ppcboot
plugin
srec
symbolsrec
verilog
tekhex
binary
ihex

View file

@ -0,0 +1,3 @@
s390:31-bit
s390:64-bit
plugin

View file

@ -0,0 +1,14 @@
elf64-s390
elf32-s390
elf64-little
elf64-big
elf32-little
elf32-big
plugin
srec
symbolsrec
verilog
tekhex
binary
ihex
trad-core

View file

@ -0,0 +1,12 @@
i386
i386:x86-64
i386:x64-32
i8086
i386:intel
i386:x86-64:intel
i386:x64-32:intel
l1om
l1om:intel
k1om
k1om:intel
plugin

View file

@ -0,0 +1,19 @@
elf64-x86-64
elf32-i386
elf32-x86-64
a.out-i386-linux
pei-i386
pei-x86-64
elf64-l1om
elf64-k1om
elf64-little
elf64-big
elf32-little
elf32-big
plugin
srec
symbolsrec
verilog
tekhex
binary
ihex

View file

@ -0,0 +1,11 @@
i386
i386:x86-64
i386:x64-32
i8086
i386:intel
i386:x86-64:intel
i386:x64-32:intel
iamcu
iamcu:intel
bpf
xbpf

View file

@ -0,0 +1,23 @@
elf64-x86-64
elf32-i386
elf32-iamcu
elf32-x86-64
pei-i386
pe-x86-64
pei-x86-64
elf64-little
elf64-big
elf32-little
elf32-big
pe-bigobj-x86-64
pe-i386
pdb
elf64-bpfle
elf64-bpfbe
srec
symbolsrec
verilog
tekhex
binary
ihex
plugin

View file

@ -8,8 +8,8 @@ contact+:
adjust+: adjust+:
- when: distro == centos-stream-9 - when: distro == centos-stream-9
environment+: environment+:
BASELINE: "9" BASELINE: "9"
- when: distro == centos-stream-8 - when: distro == centos-stream-8
environment+: environment+:
BASELINE: "8" BASELINE: "8"

View file

@ -27,7 +27,6 @@
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Include Beaker environment # Include Beaker environment
. /usr/bin/rhts-environment.sh || exit 1
. /usr/share/beakerlib/beakerlib.sh || exit 1 . /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1 . "$TMT_TREE/tests/lib.sh" || exit 1
@ -50,6 +49,10 @@ rlJournalStart
release=8 release=8
elif rlIsCentOS "=9"; then elif rlIsCentOS "=9"; then
release=9 release=9
elif rlIsCentOS "=10"; then
release=10
elif rlIsFedora ">= 40"; then
release=fedora_40
else else
rlLog "$(cat /etc/redhat-release)" rlLog "$(cat /etc/redhat-release)"
rlFail "No Baseline available for this major release; using RHEL-7 as baseline" rlFail "No Baseline available for this major release; using RHEL-7 as baseline"
@ -74,9 +77,9 @@ rlJournalStart
rlRun "objdump --help | grep 'supported architectures' | sed 's/objdump: supported architectures: //' | tr ' ' '\n' > actual_arch" rlRun "objdump --help | grep 'supported architectures' | sed 's/objdump: supported architectures: //' | tr ' ' '\n' > actual_arch"
rlLog "expected targets:" rlLog "expected targets:"
rlLog "$(cat $expected_tgt_file)" rlLog "$(cat "$expected_tgt_file")"
rlLog "expected architectures:" rlLog "expected architectures:"
rlLog "$(cat $expected_arch_file)" rlLog "$(cat "$expected_arch_file")"
rlLog "actual targets:" rlLog "actual targets:"
rlLog "$(cat actual_tgt)" rlLog "$(cat actual_tgt)"
rlLog "actual architectures:" rlLog "actual architectures:"

View file

@ -0,0 +1,132 @@
#!/bin/bash
function verify_test () {
local pattern="$1"
local log="$2"
local subject="$3"
local issue="$4"
rlRun "grep -E '^PASS: $pattern' $log.tests" 0 "$subject ($issue)"
}
function verify_interesting_cases () {
local tool="$1"
local tool_label="$2"
local tool_log="$3"
local arch="$(rlGetPrimaryArch)"
rlPhaseStartTest "$tool_label / Verify interesting test cases"
#
# RHEL-10.0
#
if rlIsRHEL ">=10"; then
if [ "$tool" = "ld" ]; then
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-align" \
"$tool_log" \
"Please support DT_RELR/pack-relative-relocs in RHEL10 on aarch64" \
"https://issues.redhat.com/browse/RHEL-31846"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-data-pie" \
"$tool_log" \
"Please support DT_RELR/pack-relative-relocs in RHEL10 on aarch64" \
"https://issues.redhat.com/browse/RHEL-31846"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-data-shared" \
"$tool_log" \
"Please support DT_RELR/pack-relative-relocs in RHEL10 on aarch64" \
"https://issues.redhat.com/browse/RHEL-31846"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-got-pie" \
"$tool_log" \
"Please support DT_RELR/pack-relative-relocs in RHEL10 on aarch64" \
"https://issues.redhat.com/browse/RHEL-31846"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-got-shared" \
"$tool_log" \
"Please support DT_RELR/pack-relative-relocs in RHEL10 on aarch64" \
"https://issues.redhat.com/browse/RHEL-31846"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-text-pie" \
"$tool_log" \
"Please support DT_RELR/pack-relative-relocs in RHEL10 on aarch64" \
"https://issues.redhat.com/browse/RHEL-31846"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-text-shared" \
"$tool_log" \
"Please support DT_RELR/pack-relative-relocs in RHEL10 on aarch64" \
"https://issues.redhat.com/browse/RHEL-31846"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-discard-pie" \
"$tool_log" \
"Please support DT_RELR/pack-relative-relocs in RHEL10 on aarch64" \
"https://issues.redhat.com/browse/RHEL-31846"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-discard-shared" \
"$tool_log" \
"Please support DT_RELR/pack-relative-relocs in RHEL10 on aarch64" \
"https://issues.redhat.com/browse/RHEL-31846"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-discard-pie" \
"$tool_log" \
"Aarch64: Fix DT_RELR with discarded sections" \
"https://issues.redhat.com/browse/RHEL-42765"
[ "$arch" == "aarch64" ] && verify_test "ld-aarch64/relr-discard-shared" \
"$tool_log" \
"Aarch64: Fix DT_RELR with discarded sections" \
"https://issues.redhat.com/browse/RHEL-42765"
verify_test "Text Section Ordering \(section-order-1a\)" \
"$tool_log" \
"Implement --section-ordering-file in the BFD linker" \
"https://issues.redhat.com/browse/RHEL-36305"
verify_test "Text Section Ordering \(section-order-1b\)" \
"$tool_log" \
"Implement --section-ordering-file in the BFD linker" \
"https://issues.redhat.com/browse/RHEL-36305"
verify_test "Data Section Ordering \(section-order-1c\)" \
"$tool_log" \
"Implement --section-ordering-file in the BFD linker" \
"https://issues.redhat.com/browse/RHEL-36305"
verify_test "Data Section Ordering \(section-order-1d\)" \
"$tool_log" \
"Implement --section-ordering-file in the BFD linker" \
"https://issues.redhat.com/browse/RHEL-36305"
else
rlLogInfo "No tests for $tool and RHEL-10"
fi
#
# RHEL-9.5.0
#
elif rlIsRHEL ">=9.5" && rlIsRHEL "<10"; then
if [ "$tool" = "binutils" ]; then
[ "$arch" == "aarch64" ] && verify_test "Check if efi app format is recognized" \
"$tool_log" \
"\"Check if efi app format is recognized\" upstream test case fails for aarch64 binutils builds" \
"https://issues.redhat.com/browse/RHEL-39953"
elif [ "$tool" = "ld" ]; then
verify_test "ld-elf/pr27590a" \
"$tool_log" \
"Perf tools compilation '.gnu.debuglto_.debug_macro' referenced in section '.gnu.debuglto_.debug_macro' of X defined in discarded section '.gnu.debuglto_.debug_macro[wm4.0.c5f57b9d27e9e0df712a778cc74f572d]' of X" \
"https://issues.redhat.com/browse/RHEL-43758"
verify_test "ld-elf/pr27590b" \
"$tool_log" \
"Perf tools compilation '.gnu.debuglto_.debug_macro' referenced in section '.gnu.debuglto_.debug_macro' of X defined in discarded section '.gnu.debuglto_.debug_macro[wm4.0.c5f57b9d27e9e0df712a778cc74f572d]' of X" \
"https://issues.redhat.com/browse/RHEL-43758"
else
rlLogInfo "No tests for $tool and RHEL-9.5.0"
fi
fi
rlPhaseEnd
}

View file

@ -11,77 +11,98 @@ require+:
- dejagnu - dejagnu
- bison - bison
- flex - flex
- zlib-static
- sharutils - sharutils
- yum-utils - yum-utils
- libstdc++-static - libstdc++-static
- rpm-build - rpm-build
link+:
- verifies: https://issues.redhat.com/browse/RHEL-31846
- verifies: https://issues.redhat.com/browse/RHEL-42765
- verifies: https://issues.redhat.com/browse/RHEL-36305
- verifies: https://issues.redhat.com/browse/RHEL-39953
- verifies: https://issues.redhat.com/browse/RHEL-43758
adjust+: adjust+:
- because: "On RHEL-9.3.0 and newer, system binutils build extra binaries for cross compilation" - because: "On RHEL-10, zlib-static is missing"
when: distro == rhel-9.3 and collection is not defined when: distro != rhel-10
require+:
- zlib-static
- because: "On RHEL-10 and newer, system binutils build extra binaries for cross compilation"
when: distro >= rhel-10 and collection is not defined
test: "$WITH_SCL ./test-with-cross.sh" test: "$WITH_SCL ./test-with-cross.sh"
- because: "On RHEL-9.3.0 and newer, system binutils build extra binaries for cross compilation" - because: "On RHEL-9.3.0 and newer, system binutils build extra binaries for cross compilation"
when: distro == rhel-9.4 and collection is not defined when: distro >= rhel-9.3 and collection is not defined
test: "$WITH_SCL ./test-with-cross.sh" test: "$WITH_SCL ./test-with-cross.sh"
- because: "On RHEL-9.3.0 and newer, gcc-toolset-14 binutils build has extra directory levels"
when: distro >= rhel-9.3 and collection == gcc-toolset-14
test: "$WITH_SCL ./test-with-cross.sh"
environment+:
MAY_BUILD_OTHER_ARCHES: "no"
- because: "On RHEL-9.3.0 and newer, gcc-toolset-13 binutils build has extra directory levels" - because: "On RHEL-9.3.0 and newer, gcc-toolset-13 binutils build has extra directory levels"
when: distro == rhel-9.3 and collection == gcc-toolset-13 when: distro >= rhel-9.3 and collection == gcc-toolset-13
test: "$WITH_SCL ./test-with-cross.sh" test: "$WITH_SCL ./test-with-cross.sh"
environment+: environment+:
MAY_BUILD_OTHER_ARCHES: "no" MAY_BUILD_OTHER_ARCHES: "no"
- because: "On RHEL-9.3.0 and newer, gcc-toolset-13 binutils build has extra directory levels" # - because: "On RHEL-8.10.0 and newer, system binutils build extra binaries for cross compilation"
when: distro == rhel-9.4 and collection == gcc-toolset-13 # when: distro == rhel-8.10 and collection is not defined
test: "$WITH_SCL ./test-with-cross.sh" # test: "$WITH_SCL ./test-with-cross.sh"
environment+: # environment+:
MAY_BUILD_OTHER_ARCHES: "no" # MAY_BUILD_OTHER_ARCHES: "no"
- because: "On RHEL-8.10.0 and newer, system binutils build extra binaries for cross compilation" - because: "On RHEL-8.10.0 and newer, gcc-toolset-14 binutils build has extra directory levels"
when: distro == rhel-8.10 and collection is not defined when: distro == rhel-8.10 and collection == gcc-toolset-14
test: "$WITH_SCL ./test-with-cross.sh" test: "$WITH_SCL ./test-with-cross.sh"
environment+: environment+:
MAY_BUILD_OTHER_ARCHES: "no" MAY_BUILD_OTHER_ARCHES: "no"
- because: "On RHEL-8.10.0 and newer, gcc-toolset-13 binutils build has extra directory levels" - because: "On RHEL-8.10.0 and newer, gcc-toolset-13 binutils build has extra directory levels"
when: distro == rhel-8.10 and collection == gcc-toolset-13 when: distro == rhel-8.10 and collection == gcc-toolset-13
test: "$WITH_SCL ./test-with-cross.sh" test: "$WITH_SCL ./test-with-cross.sh"
environment+: environment+:
MAY_BUILD_OTHER_ARCHES: "no" MAY_BUILD_OTHER_ARCHES: "no"
- because: "On RHEL-8.8.0, gcc-toolset-13 binutils build has extra directory levels"
when: distro == rhel-8.8 and collection == gcc-toolset-13
test: "$WITH_SCL ./test-with-cross.sh"
environment+:
MAY_BUILD_OTHER_ARCHES: "no"
- because: "On RHEL-8.6.0, gcc-toolset-13 binutils build has extra directory levels"
when: distro == rhel-8.6 and collection == gcc-toolset-13
test: "$WITH_SCL ./test-with-cross.sh"
environment+:
MAY_BUILD_OTHER_ARCHES: "no"
- because: "On CentOS Stream 9, system binutils build extra binaries for cross compilation" - because: "On CentOS Stream 9, system binutils build extra binaries for cross compilation"
when: distro == centos-stream-9 and collection is not defined when: distro == centos-stream-9 and collection is not defined
test: "$WITH_SCL ./test-with-cross.sh" test: "$WITH_SCL ./test-with-cross.sh"
- because: "On CentOS Stream 9, gcc-toolset-14 build has extra directory levels"
when: distro == centos-stream-9 and collection == gcc-toolset-14
test: "$WITH_SCL ./test-with-cross.sh"
environment+:
MAY_BUILD_OTHER_ARCHES: "no"
- because: "On CentOS Stream 9, gcc-toolset-13 build has extra directory levels" - because: "On CentOS Stream 9, gcc-toolset-13 build has extra directory levels"
when: distro == centos-stream-9 and collection == gcc-toolset-13 when: distro == centos-stream-9 and collection == gcc-toolset-13
test: "$WITH_SCL ./test-with-cross.sh" test: "$WITH_SCL ./test-with-cross.sh"
environment+: environment+:
MAY_BUILD_OTHER_ARCHES: "no" MAY_BUILD_OTHER_ARCHES: "no"
- because: "On Fedora 39 and newer, system binutils build extra binaries for cross compilation" - because: "On Fedora 39 and newer, system binutils build extra binaries for cross compilation"
when: distro == fedora-rawhide when: distro == fedora-rawhide
test: "$WITH_SCL ./test-with-cross.sh" test: "$WITH_SCL ./test-with-cross.sh"
environment+: environment+:
MAY_BUILD_OTHER_ARCHES: "no" MAY_BUILD_OTHER_ARCHES: "no"
- because: "On Fedora 39 and newer, system binutils build extra binaries for cross compilation" - because: "On Fedora 40 and newer, system binutils build extra binaries for cross compilation"
when: distro == fedora-39 when: distro >= fedora-38
test: "$WITH_SCL ./test-with-cross.sh" test: "$WITH_SCL ./test-with-cross.sh"
environment+: environment+:
MAY_BUILD_OTHER_ARCHES: "no" MAY_BUILD_OTHER_ARCHES: "no"
- because: "On Fedora 38 and newer, system binutils build extra binaries for cross compilation"
when: distro == fedora-38
test: "$WITH_SCL ./test-with-cross.sh"
environment+:
MAY_BUILD_OTHER_ARCHES: "no"
- because: ""
when: distro == rhel-7 and collection == devtoolset-13
test: "$WITH_SCL ./test-with-cross.sh"
environment+:
MAY_BUILD_OTHER_ARCHES: "no"
require+:
- devtoolset-13-build

View file

@ -31,6 +31,7 @@
. /usr/share/beakerlib/beakerlib.sh || exit 1 . /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1 . "$TMT_TREE/tests/lib.sh" || exit 1
. ./interesting-cases.sh || exit 1
rlJournalStart rlJournalStart
rlPhaseStartSetup rlPhaseStartSetup
@ -101,6 +102,8 @@ rlJournalStart
rlLogInfo "Failed tests:\n$(sort < "$tool_log.failed")" rlLogInfo "Failed tests:\n$(sort < "$tool_log.failed")"
rlLogInfo "All tests:\n$(grep -E '^[A-Z]+:' "$tool_log.tests" | sort)" rlLogInfo "All tests:\n$(grep -E '^[A-Z]+:' "$tool_log.tests" | sort)"
rlPhaseEnd rlPhaseEnd
verify_interesting_cases "$TOOL" "$tool_label" "$tool_log"
done done
done done

View file

@ -31,11 +31,18 @@
. /usr/share/beakerlib/beakerlib.sh || exit 1 . /usr/share/beakerlib/beakerlib.sh || exit 1
. "$TMT_TREE/tests/lib.sh" || exit 1 . "$TMT_TREE/tests/lib.sh" || exit 1
. ./interesting-cases.sh || exit 1
rlJournalStart rlJournalStart
rlPhaseStartSetup rlPhaseStartSetup
buTestHeader buTestHeader
ARCH="$(rlGetPrimaryArch)"
BUILD_ARCHS="$ARCH"
rlLogInfo "ARCH=$ARCH"
rlLogInfo "BUILD_ARCHS=$BUILD_ARCHS"
buEnterTmpDir buEnterTmpDir
rlRun "LOGDIR=$TmpDir/LOGS" rlRun "LOGDIR=$TmpDir/LOGS"
@ -50,19 +57,19 @@ rlJournalStart
rlPhaseStartSetup "Rebuild binutils" rlPhaseStartSetup "Rebuild binutils"
buBuildSRPM buBuildSRPM
rlRun "cp $CURRENT_BUILD/binutils/binutils.log $LOGDIR/binutils-$build_arch.log" rlRun "cp $CURRENT_BUILD/binutils/binutils.log $LOGDIR/binutils-$ARCH.log"
rlRun "cp $CURRENT_BUILD/binutils/binutils.sum $LOGDIR/binutils-$build_arch.sum" rlRun "cp $CURRENT_BUILD/binutils/binutils.sum $LOGDIR/binutils-$ARCH.sum"
rlRun "cp $CURRENT_BUILD/ld/ld.log $LOGDIR/ld-$build_arch.log" rlRun "cp $CURRENT_BUILD/ld/ld.log $LOGDIR/ld-$ARCH.log"
rlRun "cp $CURRENT_BUILD/ld/ld.sum $LOGDIR/ld-$build_arch.sum" rlRun "cp $CURRENT_BUILD/ld/ld.sum $LOGDIR/ld-$ARCH.sum"
rlRun "cp $CURRENT_BUILD/gas/testsuite/gas.log $LOGDIR/gas-$build_arch.log" rlRun "cp $CURRENT_BUILD/gas/testsuite/gas.log $LOGDIR/gas-$ARCH.log"
rlRun "cp $CURRENT_BUILD/gas/testsuite/gas.sum $LOGDIR/gas-$build_arch.sum" rlRun "cp $CURRENT_BUILD/gas/testsuite/gas.sum $LOGDIR/gas-$ARCH.sum"
rlPhaseEnd rlPhaseEnd
for TOOL in binutils ld gas; do for TOOL in binutils ld gas; do
tool_label="$TOOL / $build_arch" tool_label="$TOOL / $ARCH"
tool_log="$LOGDIR/$TOOL-$build_arch" tool_log="$LOGDIR/$TOOL-$ARCH"
rlPhaseStartTest "$tool_label" rlPhaseStartTest "$tool_label"
rlLogInfo "$tool_label Summary" rlLogInfo "$tool_label Summary"
@ -75,6 +82,8 @@ rlJournalStart
rlLogInfo "Failed tests:\n$(sort < "$tool_log.failed")" rlLogInfo "Failed tests:\n$(sort < "$tool_log.failed")"
rlLogInfo "All tests:\n$(grep -E '^[A-Z]+:' "$tool_log.tests" | sort)" rlLogInfo "All tests:\n$(grep -E '^[A-Z]+:' "$tool_log.tests" | sort)"
rlPhaseEnd rlPhaseEnd
verify_interesting_cases "$TOOL" "$tool_label" "$tool_log"
done done
rlPhaseStartCleanup rlPhaseStartCleanup