Compare commits
190 commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e286ac089b | ||
|
|
5e050ee6d4 | ||
|
|
10671c0eca | ||
|
|
e0ff142016 | ||
|
|
064736651b | ||
|
|
9f66e09750 | ||
|
|
40bef170ce | ||
|
|
d4dfa51cea | ||
|
|
29b46b6079 | ||
|
|
f40a1175b9 | ||
|
|
ddb3cb864e | ||
|
|
5119f9a9cd | ||
|
|
9600c63b36 | ||
|
|
23b67e31b8 | ||
|
|
f9af6f1a80 | ||
|
|
c5ce1de980 | ||
|
|
29eedae455 | ||
|
|
c546fe6976 | ||
|
|
0608389263 | ||
|
|
f294ebe3ba | ||
|
|
5b0464e961 | ||
|
|
76d42a7875 | ||
|
|
33e6445241 | ||
|
|
108ab4ef7a | ||
|
|
aa57e62e08 | ||
|
|
cc43b90ffc | ||
|
|
a53f464f7d | ||
|
|
60fb2164e5 | ||
|
|
2c4833fe8a | ||
|
|
c228a0153a | ||
|
|
27063804ce | ||
|
|
4c1598168d | ||
|
|
4483836ddc | ||
|
|
848e40ec3a | ||
|
|
735a883933 | ||
|
|
64b8d9de61 | ||
|
|
d7078a903f | ||
|
|
f862eebcff | ||
|
|
04aad048cf | ||
|
|
300293f7e2 | ||
|
|
9e81b24737 | ||
|
|
2ac1ee2a42 | ||
|
|
19f1fc4940 | ||
|
|
f9a1cd84ee | ||
|
|
9de042a279 | ||
|
|
96aece08c1 | ||
|
|
f6c1766b84 | ||
|
|
ca67fa0f89 | ||
|
|
1e5363880e | ||
|
|
aa65e68b95 | ||
|
|
b2a44377f7 | ||
|
|
a4377df024 | ||
|
|
049dc08ca1 | ||
|
|
3c2b6fab82 | ||
|
|
cf3468eb37 | ||
|
|
2b97979d33 | ||
|
|
b52b1c824b | ||
|
|
77d3ccc230 | ||
|
|
001f1473de | ||
|
|
b84449875a | ||
|
|
791874dbf7 | ||
|
|
5c8f89372f | ||
|
|
c1e2857084 | ||
|
|
0f77e6a6c6 | ||
|
|
6152e0d05c | ||
|
|
88532ad57e | ||
|
|
dbb6a2b533 | ||
|
|
01507c9252 | ||
|
|
8748d12378 | ||
|
|
fa3058d5fc | ||
|
|
7888285b10 | ||
|
|
eaff7615a3 | ||
|
|
c6ac23d8f1 | ||
|
|
a9bd5526fa | ||
|
|
384e850d5a | ||
|
|
115547ce07 | ||
|
|
84cee8e828 | ||
|
|
7f4b0bfa04 | ||
|
|
6be32c794e | ||
|
|
87ee448377 | ||
|
|
53dfb5f3d9 | ||
|
|
9c83775c81 | ||
|
|
c4f15b9679 | ||
|
|
6cb8c76a06 | ||
|
|
875ad5b267 | ||
|
|
00b3ac3d67 | ||
|
|
3f77f370f1 | ||
|
|
4fe99c972e | ||
|
|
5d93718856 | ||
|
|
6811ff96a8 | ||
|
|
3e7c1aeff4 | ||
|
|
50a2d13658 | ||
|
|
cc723c198d | ||
|
|
6936dfba5d | ||
|
|
a8edbcb255 | ||
|
|
a9dd5ddc2c | ||
|
|
8e380e50cb | ||
|
|
c0b354c6e6 | ||
|
|
83a75f8fd1 | ||
|
|
fddf5b0c9a | ||
|
|
9242ef0c66 | ||
|
|
9ec20adf80 | ||
|
|
b534deccce | ||
|
|
17373e3782 | ||
|
|
ce64e3b14f | ||
|
|
daff9b01dd | ||
|
|
c697a444a9 | ||
|
|
36cbd09894 | ||
|
|
6043ce66a1 | ||
|
|
27b8ab3195 | ||
|
|
45b6743b78 | ||
|
|
c0e2cc5ed5 | ||
|
|
2175d42ba1 | ||
|
|
42d71d98c8 | ||
|
|
f78741193c | ||
|
|
5d27552da0 | ||
|
|
92824e7d56 | ||
|
|
221d87cb73 | ||
|
|
a363b071f4 | ||
|
|
928e5ff57a | ||
|
|
b769a968b8 | ||
|
|
27dc20eed1 | ||
|
|
d488a923af | ||
|
|
668448a4d3 | ||
|
|
869fd132e6 | ||
|
|
7db94aa6ea | ||
|
|
90d6ac6eba | ||
|
|
aafdbcfc2e | ||
|
|
f5eacb8b02 | ||
|
|
d43bbe0fb5 | ||
|
|
daafbde83e | ||
|
|
c1cad428e0 | ||
|
|
a5425af175 | ||
|
|
5132280190 | ||
|
|
f7f7b9f944 | ||
|
|
b606cdd338 | ||
|
|
4c25ffdf16 | ||
|
|
508b3ee556 | ||
|
|
7206b7ef95 | ||
|
|
137e54debb | ||
|
|
6ab5c9d778 | ||
|
|
4a2b1583b0 | ||
|
|
b30ba09c72 | ||
| 9331510b79 | |||
|
|
f7ce37e465 | ||
|
|
173d8ce283 | ||
|
|
62f9165a13 | ||
|
|
8f1ba5b061 | ||
|
|
05f5ab6f6f | ||
|
|
3b7f3a5c52 | ||
|
|
4196d43202 | ||
|
|
e6b3d1627a | ||
|
|
28255cde1d | ||
|
|
1d05c1f190 | ||
|
|
00415f44d2 | ||
|
|
8cbdd69541 | ||
|
|
b14c746ff8 | ||
|
|
1fe93dadad | ||
|
|
c3cd6c8351 | ||
|
|
de97bb3603 | ||
|
|
329cf6426e | ||
|
|
e8094f532e | ||
|
|
c2d4243912 | ||
|
|
d294fe2ca4 | ||
|
|
88b4953e8b | ||
|
|
13a8e71fad | ||
|
|
a74941f97f | ||
|
|
53e1e785a0 | ||
|
|
ccf531f53d | ||
|
|
fcb20d506b | ||
|
|
78d9a63f8b | ||
|
|
ec1bac1bd2 | ||
|
|
0b1c8753b9 | ||
|
|
b6cd5a80bd | ||
|
|
262733044e | ||
|
|
49f3d832d9 | ||
|
|
4c53cd0d87 | ||
|
|
93b20dcdbf | ||
|
|
41f66d24b8 | ||
|
|
b2ca1be519 | ||
|
|
184c1812b1 | ||
|
|
d0a86e89e0 | ||
|
|
9fe14c4dd6 | ||
|
|
fb35f3c111 | ||
|
|
52ad8b6547 | ||
|
|
f751bb5ce4 | ||
|
|
6502fbec15 | ||
|
|
b094a17b03 | ||
|
|
66740f7362 | ||
|
|
d8e1d9b57a |
239 changed files with 2802 additions and 10899 deletions
13
.gitignore
vendored
13
.gitignore
vendored
|
|
@ -1,6 +1,8 @@
|
||||||
*.diff
|
*.diff
|
||||||
*.orig
|
*.orig
|
||||||
*.rej
|
*.rej
|
||||||
|
*.sed
|
||||||
|
*.xz
|
||||||
|
|
||||||
*~
|
*~
|
||||||
.#*
|
.#*
|
||||||
|
|
@ -61,11 +63,8 @@ stamp-*
|
||||||
/mpc*
|
/mpc*
|
||||||
/gmp*
|
/gmp*
|
||||||
/isl*
|
/isl*
|
||||||
/binutils-2.34.0-5dfc0c955dbe912cd328fc2688e5fceb3239ac2a.tar.xz
|
|
||||||
/binutils-2.19.50.0.1-output-format.sed
|
/binutils-2.19.50.0.1-output-format.sed
|
||||||
/binutils-2.35.tar.xz
|
/binutils-2.44.50-13.fc43.src.rpm
|
||||||
/binutils-2.35.1.tar.xz
|
/binutils-with-gold-2.45.50-be970c68891.tar.gz
|
||||||
/binutils-2.36.1.tar.xz
|
/binutils-with-gold-2.45.50-ba5838a98fb.tar.gz
|
||||||
/binutils-2.37.tar.xz
|
/binutils-2.47.50-1.fc46.src.rpm
|
||||||
/binutils-2.38.tar.xz
|
|
||||||
/binutils-2.39.tar.xz
|
|
||||||
|
|
|
||||||
|
|
@ -1,13 +0,0 @@
|
||||||
--- binutils.orig/bfd/elf.c 2022-12-13 15:21:20.040233487 +0000
|
|
||||||
+++ binutils-2.39/bfd/elf.c 2022-12-13 15:22:33.580986232 +0000
|
|
||||||
@@ -8868,7 +8868,9 @@ _bfd_elf_slurp_version_tables (bfd *abfd
|
|
||||||
bfd_set_error (bfd_error_file_too_big);
|
|
||||||
goto error_return_verref;
|
|
||||||
}
|
|
||||||
- elf_tdata (abfd)->verref = (Elf_Internal_Verneed *) bfd_alloc (abfd, amt);
|
|
||||||
+ if (amt == 0)
|
|
||||||
+ goto error_return_verref;
|
|
||||||
+ elf_tdata (abfd)->verref = (Elf_Internal_Verneed *) bfd_zalloc (abfd, amt);
|
|
||||||
if (elf_tdata (abfd)->verref == NULL)
|
|
||||||
goto error_return_verref;
|
|
||||||
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
--- binutils.orig/binutils/dwarf.c 2022-08-31 11:58:08.918685348 +0100
|
|
||||||
+++ binutils-2.39/binutils/dwarf.c 2022-08-31 15:24:13.881865797 +0100
|
|
||||||
@@ -6365,7 +6365,11 @@ display_debug_abbrev (struct dwarf_secti
|
|
||||||
list->start_of_next_abbrevs = start;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
- start = list->start_of_next_abbrevs;
|
|
||||||
+ {
|
|
||||||
+ if (start == list->start_of_next_abbrevs)
|
|
||||||
+ break;
|
|
||||||
+ start = list->start_of_next_abbrevs;
|
|
||||||
+ }
|
|
||||||
|
|
||||||
if (list->first_abbrev == NULL)
|
|
||||||
continue;
|
|
||||||
154
binutils-LTO-restore-wrapper-symbol.patch
Normal file
154
binutils-LTO-restore-wrapper-symbol.patch
Normal file
|
|
@ -0,0 +1,154 @@
|
||||||
|
From 3221c470f0765886a49a1a3d2ec602e4104a377b Mon Sep 17 00:00:00 2001
|
||||||
|
From: "H.J. Lu" <hjl.tools@gmail.com>
|
||||||
|
Date: Fri, 2 Aug 2024 19:52:00 -0700
|
||||||
|
Subject: [PATCH] LTO: Restore the wrapper symbol check for standard function
|
||||||
|
|
||||||
|
Call unwrap_hash_lookup to restore the wrapper symbol check for standard
|
||||||
|
function since reference to standard function may not show up in LTO
|
||||||
|
symbol table:
|
||||||
|
|
||||||
|
[hjl@gnu-tgl-3 pr31956-3]$ nm foo.o
|
||||||
|
00000000 T main
|
||||||
|
U __real_malloc
|
||||||
|
00000000 T __wrap_malloc
|
||||||
|
[hjl@gnu-tgl-3 pr31956-3]$ lto-dump -list foo.o
|
||||||
|
Type Visibility Size Name
|
||||||
|
function default 0 malloc
|
||||||
|
function default 0 __real_malloc
|
||||||
|
function default 3 main
|
||||||
|
function default 5 __wrap_malloc
|
||||||
|
[hjl@gnu-tgl-3 pr31956-3]$ make
|
||||||
|
gcc -O2 -flto -Wall -c -o foo.o foo.c
|
||||||
|
gcc -Wl,--wrap=malloc -O2 -flto -Wall -o x foo.o
|
||||||
|
/usr/local/bin/ld: /tmp/ccsPW0a9.ltrans0.ltrans.o: in function `main':
|
||||||
|
<artificial>:(.text.startup+0xa): undefined reference to `__wrap_malloc'
|
||||||
|
collect2: error: ld returned 1 exit status
|
||||||
|
make: *** [Makefile:22: x] Error 1
|
||||||
|
[hjl@gnu-tgl-3 pr31956-3]$
|
||||||
|
|
||||||
|
Also add a test to verify that the unused wrapper is removed.
|
||||||
|
|
||||||
|
PR ld/31956
|
||||||
|
* plugin.c (get_symbols): Restore the wrapper symbol check for
|
||||||
|
standard function.
|
||||||
|
* testsuite/ld-plugin/lto.exp: Run the malloc test and the
|
||||||
|
unused test.
|
||||||
|
* testsuite/ld-plugin/pr31956c.c: New file.
|
||||||
|
* testsuite/ld-plugin/pr31956d.c: New file.
|
||||||
|
* testsuite/ld-plugin/pr31956d.d: New file.
|
||||||
|
|
||||||
|
Signed-off-by: H.J. Lu <hjl.tools@gmail.com>
|
||||||
|
---
|
||||||
|
ld/plugin.c | 14 ++++++++++++--
|
||||||
|
ld/testsuite/ld-plugin/lto.exp | 16 ++++++++++++++++
|
||||||
|
ld/testsuite/ld-plugin/pr31956c.c | 19 +++++++++++++++++++
|
||||||
|
ld/testsuite/ld-plugin/pr31956d.c | 7 +++++++
|
||||||
|
ld/testsuite/ld-plugin/pr31956d.d | 4 ++++
|
||||||
|
5 files changed, 58 insertions(+), 2 deletions(-)
|
||||||
|
create mode 100644 ld/testsuite/ld-plugin/pr31956c.c
|
||||||
|
create mode 100644 ld/testsuite/ld-plugin/pr31956d.c
|
||||||
|
create mode 100644 ld/testsuite/ld-plugin/pr31956d.d
|
||||||
|
|
||||||
|
diff --git a/ld/plugin.c b/ld/plugin.c
|
||||||
|
index 03ee9880d10..51c4765cc5b 100644
|
||||||
|
--- a/ld/plugin.c
|
||||||
|
+++ b/ld/plugin.c
|
||||||
|
@@ -778,8 +778,18 @@ get_symbols (const void *handle, int nsyms, struct ld_plugin_symbol *syms,
|
||||||
|
{
|
||||||
|
blhe = h;
|
||||||
|
/* Check if a symbol is a wrapper symbol. */
|
||||||
|
- if (blhe && blhe->wrapper_symbol)
|
||||||
|
- wrap_status = wrapper;
|
||||||
|
+ if (blhe)
|
||||||
|
+ {
|
||||||
|
+ if (blhe->wrapper_symbol)
|
||||||
|
+ wrap_status = wrapper;
|
||||||
|
+ else if (link_info.wrap_hash != NULL)
|
||||||
|
+ {
|
||||||
|
+ struct bfd_link_hash_entry *unwrap
|
||||||
|
+ = unwrap_hash_lookup (&link_info, (bfd *) abfd, blhe);
|
||||||
|
+ if (unwrap != NULL && unwrap != h)
|
||||||
|
+ wrap_status = wrapper;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
diff --git a/ld/testsuite/ld-plugin/lto.exp b/ld/testsuite/ld-plugin/lto.exp
|
||||||
|
index ad59e2abd61..1a8c3736307 100644
|
||||||
|
--- a/ld/testsuite/ld-plugin/lto.exp
|
||||||
|
+++ b/ld/testsuite/ld-plugin/lto.exp
|
||||||
|
@@ -546,6 +546,22 @@ set lto_link_elf_tests [list \
|
||||||
|
{} \
|
||||||
|
"pr31956b" \
|
||||||
|
] \
|
||||||
|
+ [list \
|
||||||
|
+ "PR ld/31956 (malloc)" \
|
||||||
|
+ "-Wl,--wrap=malloc" \
|
||||||
|
+ "-O2 -flto" \
|
||||||
|
+ {pr31956c.c} \
|
||||||
|
+ {} \
|
||||||
|
+ "pr31956c" \
|
||||||
|
+ ] \
|
||||||
|
+ [list \
|
||||||
|
+ "PR ld/31956 (unused)" \
|
||||||
|
+ "-Wl,--wrap=parse_line" \
|
||||||
|
+ "-O2 -flto" \
|
||||||
|
+ {pr31956d.c} \
|
||||||
|
+ {{"nm" {} "pr31956d.d"}} \
|
||||||
|
+ "pr31956d" \
|
||||||
|
+ ] \
|
||||||
|
[list \
|
||||||
|
"Build pr30281.so" \
|
||||||
|
"-shared -Wl,--version-script,pr30281.t \
|
||||||
|
diff --git a/ld/testsuite/ld-plugin/pr31956c.c b/ld/testsuite/ld-plugin/pr31956c.c
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..4a46b2b49a8
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/ld/testsuite/ld-plugin/pr31956c.c
|
||||||
|
@@ -0,0 +1,19 @@
|
||||||
|
+#include <stdlib.h>
|
||||||
|
+
|
||||||
|
+extern void *__real_malloc (size_t);
|
||||||
|
+
|
||||||
|
+void *
|
||||||
|
+__wrap_malloc (size_t n)
|
||||||
|
+{
|
||||||
|
+ if (n == 0)
|
||||||
|
+ return NULL;
|
||||||
|
+ else
|
||||||
|
+ return __real_malloc (n);
|
||||||
|
+};
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main (void)
|
||||||
|
+{
|
||||||
|
+ void *ptr = malloc (30);
|
||||||
|
+ return ptr == NULL ? 1 : 0;
|
||||||
|
+}
|
||||||
|
diff --git a/ld/testsuite/ld-plugin/pr31956d.c b/ld/testsuite/ld-plugin/pr31956d.c
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..cb7f2d50643
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/ld/testsuite/ld-plugin/pr31956d.c
|
||||||
|
@@ -0,0 +1,7 @@
|
||||||
|
+void __wrap_parse_line(void) {};
|
||||||
|
+
|
||||||
|
+int
|
||||||
|
+main (void)
|
||||||
|
+{
|
||||||
|
+ return 0;
|
||||||
|
+}
|
||||||
|
diff --git a/ld/testsuite/ld-plugin/pr31956d.d b/ld/testsuite/ld-plugin/pr31956d.d
|
||||||
|
new file mode 100644
|
||||||
|
index 00000000000..b579cdc7353
|
||||||
|
--- /dev/null
|
||||||
|
+++ b/ld/testsuite/ld-plugin/pr31956d.d
|
||||||
|
@@ -0,0 +1,4 @@
|
||||||
|
+#failif
|
||||||
|
+#...
|
||||||
|
+[0-9a-f]+ T .*parse_line
|
||||||
|
+#...
|
||||||
|
--
|
||||||
|
2.45.2
|
||||||
|
|
||||||
12
binutils-aarch64-small-plt0.patch
Normal file
12
binutils-aarch64-small-plt0.patch
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
--- binutils.orig/bfd/elfnn-aarch64.c 2025-02-07 13:42:20.961333141 +0000
|
||||||
|
+++ binutils-with-gold-2.44/bfd/elfnn-aarch64.c 2025-02-07 13:42:29.781353740 +0000
|
||||||
|
@@ -10162,7 +10162,8 @@ elfNN_aarch64_init_small_plt0_entry (bfd
|
||||||
|
/* PR 26312: Explicitly set the sh_entsize to 0 so that
|
||||||
|
consumers do not think that the section contains fixed
|
||||||
|
sized objects. */
|
||||||
|
- elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize = 0;
|
||||||
|
+ if (elf_section_data (htab->root.splt->output_section) != NULL)
|
||||||
|
+ elf_section_data (htab->root.splt->output_section)->this_hdr.sh_entsize = 0;
|
||||||
|
|
||||||
|
plt_got_2nd_ent = (htab->root.sgotplt->output_section->vma
|
||||||
|
+ htab->root.sgotplt->output_offset
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
diff -rup binutils.orig/configure binutils-2.30/configure
|
diff -rup binutils.orig/configure binutils-2.40/configure
|
||||||
--- binutils.orig/configure 2018-09-24 17:50:06.967172922 +0100
|
--- binutils.orig/configure 2023-02-13 14:43:00.728877170 +0000
|
||||||
+++ binutils-2.30/configure 2018-09-24 17:51:16.648624865 +0100
|
+++ binutils-2.40/configure 2023-02-13 14:43:13.671864892 +0000
|
||||||
@@ -4996,49 +4996,6 @@ if test -z "$LD"; then
|
@@ -5442,49 +5442,6 @@ if test -z "$LD"; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -51,10 +51,9 @@ diff -rup binutils.orig/configure binutils-2.30/configure
|
||||||
|
|
||||||
|
|
||||||
if test -n "$ac_tool_prefix"; then
|
if test -n "$ac_tool_prefix"; then
|
||||||
diff -rup binutils.orig/configure.ac binutils-2.30/configure.ac
|
--- binutils.orig/configure.ac 2024-11-26 15:08:50.162328683 +0000
|
||||||
--- binutils.orig/configure.ac 2018-09-24 17:50:07.241170767 +0100
|
+++ binutils-2.43.50-1686dc7079f/configure.ac 2024-11-26 15:08:56.929374527 +0000
|
||||||
+++ binutils-2.30/configure.ac 2018-09-24 17:50:29.908992486 +0100
|
@@ -1410,26 +1410,6 @@ if test -z "$LD"; then
|
||||||
@@ -1288,26 +1288,6 @@ if test -z "$LD"; then
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|
@ -79,5 +78,5 @@ diff -rup binutils.orig/configure.ac binutils-2.30/configure.ac
|
||||||
-fi
|
-fi
|
||||||
-
|
-
|
||||||
ACX_PROG_GNAT
|
ACX_PROG_GNAT
|
||||||
ACX_PROG_CMP_IGNORE_INITIAL
|
ACX_PROG_GDC
|
||||||
|
ACX_PROG_CARGO
|
||||||
|
|
|
||||||
|
|
@ -1,134 +0,0 @@
|
||||||
--- binutils.orig/binutils/readelf.c 2021-07-19 12:39:14.206556025 +0100
|
|
||||||
+++ binutils-2.37/binutils/readelf.c 2021-07-19 12:44:37.712728732 +0100
|
|
||||||
@@ -21873,45 +21873,52 @@ process_file (char * file_name)
|
|
||||||
struct stat statbuf;
|
|
||||||
char armag[SARMAG];
|
|
||||||
bool ret = true;
|
|
||||||
+ char * name;
|
|
||||||
+ char * saved_program_name;
|
|
||||||
+
|
|
||||||
+ /* Overload program_name to include file_name. Doing this means
|
|
||||||
+ that warning/error messages will positively identify the file
|
|
||||||
+ concerned even when multiple instances of readelf are running. */
|
|
||||||
+ name = xmalloc (strlen (program_name) + strlen (file_name) + 3);
|
|
||||||
+ sprintf (name, "%s: %s", program_name, file_name);
|
|
||||||
+ saved_program_name = program_name;
|
|
||||||
+ program_name = name;
|
|
||||||
|
|
||||||
if (stat (file_name, &statbuf) < 0)
|
|
||||||
{
|
|
||||||
if (errno == ENOENT)
|
|
||||||
- error (_("'%s': No such file\n"), file_name);
|
|
||||||
+ error (_("No such file\n"));
|
|
||||||
else
|
|
||||||
- error (_("Could not locate '%s'. System error message: %s\n"),
|
|
||||||
- file_name, strerror (errno));
|
|
||||||
- return false;
|
|
||||||
+ error (_("Could not locate file. System error message: %s\n"),
|
|
||||||
+ strerror (errno));
|
|
||||||
+ goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (! S_ISREG (statbuf.st_mode))
|
|
||||||
{
|
|
||||||
- error (_("'%s' is not an ordinary file\n"), file_name);
|
|
||||||
- return false;
|
|
||||||
+ error (_("Not an ordinary file\n"));
|
|
||||||
+ goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
filedata = calloc (1, sizeof * filedata);
|
|
||||||
if (filedata == NULL)
|
|
||||||
{
|
|
||||||
error (_("Out of memory allocating file data structure\n"));
|
|
||||||
- return false;
|
|
||||||
+ goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
filedata->file_name = file_name;
|
|
||||||
filedata->handle = fopen (file_name, "rb");
|
|
||||||
if (filedata->handle == NULL)
|
|
||||||
{
|
|
||||||
- error (_("Input file '%s' is not readable.\n"), file_name);
|
|
||||||
- free (filedata);
|
|
||||||
- return false;
|
|
||||||
+ error (_("Not readable\n"));
|
|
||||||
+ goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (fread (armag, SARMAG, 1, filedata->handle) != 1)
|
|
||||||
{
|
|
||||||
- error (_("%s: Failed to read file's magic number\n"), file_name);
|
|
||||||
- fclose (filedata->handle);
|
|
||||||
- free (filedata);
|
|
||||||
- return false;
|
|
||||||
+ error (_("Failed to read file's magic number\n"));
|
|
||||||
+ goto done;
|
|
||||||
}
|
|
||||||
|
|
||||||
filedata->file_size = (bfd_size_type) statbuf.st_size;
|
|
||||||
@@ -21919,33 +21926,39 @@ process_file (char * file_name)
|
|
||||||
|
|
||||||
if (memcmp (armag, ARMAG, SARMAG) == 0)
|
|
||||||
{
|
|
||||||
- if (! process_archive (filedata, false))
|
|
||||||
- ret = false;
|
|
||||||
+ if (process_archive (filedata, false))
|
|
||||||
+ ret = true;
|
|
||||||
}
|
|
||||||
else if (memcmp (armag, ARMAGT, SARMAG) == 0)
|
|
||||||
{
|
|
||||||
- if ( ! process_archive (filedata, true))
|
|
||||||
- ret = false;
|
|
||||||
+ if (process_archive (filedata, true))
|
|
||||||
+ ret = true;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (do_archive_index && !check_all)
|
|
||||||
- error (_("File %s is not an archive so its index cannot be displayed.\n"),
|
|
||||||
- file_name);
|
|
||||||
+ error (_("Not an archive so its index cannot be displayed.\n"));
|
|
||||||
|
|
||||||
rewind (filedata->handle);
|
|
||||||
filedata->archive_file_size = filedata->archive_file_offset = 0;
|
|
||||||
|
|
||||||
- if (! process_object (filedata))
|
|
||||||
- ret = false;
|
|
||||||
+ if (process_object (filedata))
|
|
||||||
+ ret = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
- fclose (filedata->handle);
|
|
||||||
- free (filedata->section_headers);
|
|
||||||
- free (filedata->program_headers);
|
|
||||||
- free (filedata->string_table);
|
|
||||||
- free (filedata->dump.dump_sects);
|
|
||||||
- free (filedata);
|
|
||||||
+ done:
|
|
||||||
+ if (filedata)
|
|
||||||
+ {
|
|
||||||
+ if (filedata->handle != NULL)
|
|
||||||
+ fclose (filedata->handle);
|
|
||||||
+ free (filedata->section_headers);
|
|
||||||
+ free (filedata->program_headers);
|
|
||||||
+ free (filedata->string_table);
|
|
||||||
+ free (filedata->dump.dump_sects);
|
|
||||||
+ free (filedata);
|
|
||||||
+ }
|
|
||||||
+ free (program_name);
|
|
||||||
+ program_name = saved_program_name;
|
|
||||||
|
|
||||||
free (ba_cache.strtab);
|
|
||||||
ba_cache.strtab = NULL;
|
|
||||||
--- binutils.orig/binutils/readelf.c 2021-08-10 10:15:22.088016072 +0100
|
|
||||||
+++ binutils-2.37/binutils/readelf.c 2021-08-10 10:15:55.567907891 +0100
|
|
||||||
@@ -21884,7 +21884,7 @@ process_file (char * file_name)
|
|
||||||
Filedata * filedata = NULL;
|
|
||||||
struct stat statbuf;
|
|
||||||
char armag[SARMAG];
|
|
||||||
- bool ret = true;
|
|
||||||
+ bool ret = false;
|
|
||||||
char * name;
|
|
||||||
char * saved_program_name;
|
|
||||||
|
|
||||||
11
binutils-fix-ar-test.patch
Normal file
11
binutils-fix-ar-test.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- binutils.orig/binutils/testsuite/binutils-all/ar.exp 2024-02-07 13:02:23.490031197 +0000
|
||||||
|
+++ binutils-2.42/binutils/testsuite/binutils-all/ar.exp 2024-02-07 13:03:10.285034069 +0000
|
||||||
|
@@ -1017,7 +1017,7 @@ symbol_table
|
||||||
|
argument_parsing
|
||||||
|
deterministic_archive
|
||||||
|
replacing_deterministic_member
|
||||||
|
-replacing_non_deterministic_member
|
||||||
|
+# replacing_non_deterministic_member
|
||||||
|
replacing_sde_deterministic_member
|
||||||
|
delete_an_element
|
||||||
|
move_an_element
|
||||||
|
|
@ -1,330 +0,0 @@
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d 2019-02-15 13:33:21.979627285 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d 2019-02-15 13:40:26.911199033 +0000
|
|
||||||
@@ -34,5 +34,6 @@ hook called: claim_file tmpdir/libtext.a
|
|
||||||
hook called: all symbols read.
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-13.d binutils-2.32/ld/testsuite/ld-plugin/plugin-13.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-13.d 2019-02-15 13:33:21.980627277 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-13.d 2019-02-15 13:41:30.189692800 +0000
|
|
||||||
@@ -23,5 +23,3 @@ hook called: claim_file tmpdir/main.o \[
|
|
||||||
hook called: claim_file .*/ld/testsuite/ld-plugin/func.c \[@0/.* CLAIMED
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
#...
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
-#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-14.d binutils-2.32/ld/testsuite/ld-plugin/plugin-14.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-14.d 2019-02-15 13:33:21.977627301 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-14.d 2019-02-15 13:42:03.598430960 +0000
|
|
||||||
@@ -27,7 +27,6 @@ hook called: claim_file .*/ld/testsuite/
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-15.d binutils-2.32/ld/testsuite/ld-plugin/plugin-15.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-15.d 2019-02-15 13:33:21.980627277 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-15.d 2019-02-15 13:42:28.014239600 +0000
|
|
||||||
@@ -28,7 +28,6 @@ hook called: claim_file .*/ld/testsuite/
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-16.d binutils-2.32/ld/testsuite/ld-plugin/plugin-16.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-16.d 2019-02-15 13:33:21.977627301 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-16.d 2019-02-15 13:43:21.309821910 +0000
|
|
||||||
@@ -30,9 +30,8 @@ hook called: claim_file .*/ld/testsuite/
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-17.d binutils-2.32/ld/testsuite/ld-plugin/plugin-17.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-17.d 2019-02-15 13:33:21.977627301 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-17.d 2019-02-15 13:43:54.925558451 +0000
|
|
||||||
@@ -31,7 +31,8 @@ hook called: claim_file .*/ld/testsuite/
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-20.d binutils-2.32/ld/testsuite/ld-plugin/plugin-20.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-20.d 2019-02-15 13:33:21.980627277 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-20.d 2019-02-15 13:49:20.091010016 +0000
|
|
||||||
@@ -2,6 +2,5 @@ hook called: all symbols read.
|
|
||||||
Input: func.c \(tmpdir/libfunc.a\)
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-21.d binutils-2.32/ld/testsuite/ld-plugin/plugin-21.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-21.d 2019-02-15 13:33:21.978627293 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-21.d 2019-02-15 13:49:34.506897033 +0000
|
|
||||||
@@ -2,6 +2,5 @@ hook called: all symbols read.
|
|
||||||
Input: .*/ld/testsuite/ld-plugin/func.c \(.*/ld/testsuite/ld-plugin/func.c\)
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-22.d binutils-2.32/ld/testsuite/ld-plugin/plugin-22.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-22.d 2019-02-15 13:33:21.980627277 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-22.d 2019-02-15 13:50:00.409694022 +0000
|
|
||||||
@@ -2,6 +2,5 @@ Claimed: tmpdir/libfunc.a \[@.*
|
|
||||||
hook called: all symbols read.
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-23.d binutils-2.32/ld/testsuite/ld-plugin/plugin-23.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-23.d 2019-02-15 13:33:21.979627285 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-23.d 2019-02-15 13:50:14.938580156 +0000
|
|
||||||
@@ -2,6 +2,5 @@ Claimed: .*/ld/testsuite/ld-plugin/func.
|
|
||||||
hook called: all symbols read.
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-24.d binutils-2.32/ld/testsuite/ld-plugin/plugin-24.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-24.d 2019-02-15 13:33:21.980627277 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-24.d 2019-02-15 13:49:46.346804240 +0000
|
|
||||||
@@ -2,4 +2,5 @@ hook called: all symbols read.
|
|
||||||
Input: .*/ld/testsuite/ld-plugin/func.c \(.*/ld/testsuite/ld-plugin/func.c\)
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-25.d binutils-2.32/ld/testsuite/ld-plugin/plugin-25.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-25.d 2019-02-15 13:33:21.978627293 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-25.d 2019-02-15 13:50:29.322467422 +0000
|
|
||||||
@@ -2,4 +2,5 @@ Claimed: .*/ld/testsuite/ld-plugin/func.
|
|
||||||
hook called: all symbols read.
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF.*
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d 2019-02-15 13:33:21.977627301 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d 2019-02-15 13:45:05.343006557 +0000
|
|
||||||
@@ -1 +1,3 @@
|
|
||||||
.*: error: Error
|
|
||||||
+#...
|
|
||||||
+
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-29.d binutils-2.32/ld/testsuite/ld-plugin/plugin-29.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-29.d 2019-02-15 13:33:21.978627293 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-29.d 2019-02-15 13:45:22.764870016 +0000
|
|
||||||
@@ -1 +1,2 @@
|
|
||||||
.*: warning: Warning
|
|
||||||
+#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-30.d binutils-2.32/ld/testsuite/ld-plugin/plugin-30.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-30.d 2019-02-15 13:33:21.976627309 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-30.d 2019-02-15 13:48:57.067190464 +0000
|
|
||||||
@@ -24,3 +24,4 @@ hook called: claim_file tmpdir/main.o \[
|
|
||||||
hook called: claim_file tmpdir/func.o \[@0/.* not claimed
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
hook called: claim_file tmpdir/libempty.a \[@.* not claimed
|
|
||||||
+#pass
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-6.d binutils-2.32/ld/testsuite/ld-plugin/plugin-6.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-6.d 2019-02-15 13:33:21.979627285 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-6.d 2019-02-15 13:37:14.672749977 +0000
|
|
||||||
@@ -27,7 +27,6 @@ hook called: claim_file tmpdir/func.o \[
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-7.d binutils-2.32/ld/testsuite/ld-plugin/plugin-7.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-7.d 2019-02-15 13:33:21.977627301 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-7.d 2019-02-15 13:37:58.000400421 +0000
|
|
||||||
@@ -28,7 +28,6 @@ hook called: claim_file tmpdir/func.o \[
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d 2019-02-15 13:33:21.980627277 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d 2019-02-15 13:38:34.096109209 +0000
|
|
||||||
@@ -32,7 +32,6 @@ hook called: claim_file tmpdir/text.o \[
|
|
||||||
hook called: all symbols read.
|
|
||||||
Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
-.*: tmpdir/main.o: in function `main':
|
|
||||||
-.*main.c.*: undefined reference to `\.?func'
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-9.d binutils-2.32/ld/testsuite/ld-plugin/plugin-9.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-9.d 2019-02-15 13:33:21.977627301 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-9.d 2019-02-15 13:39:52.655475403 +0000
|
|
||||||
@@ -31,7 +31,8 @@ hook called: claim_file tmpdir/func.o \[
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/pr20070.d binutils-2.32/ld/testsuite/ld-plugin/pr20070.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/pr20070.d 2019-02-15 13:33:21.976627309 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/pr20070.d 2019-02-15 13:50:56.874251486 +0000
|
|
||||||
@@ -5,5 +5,6 @@ Sym: 'weakdef' Resolution: LDPR_PREVAILI
|
|
||||||
Sym: 'undef' Resolution: LDPR_UNDEF
|
|
||||||
Sym: 'weakundef' Resolution: LDPR_UNDEF
|
|
||||||
Sym: 'common' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-srec/srec.exp binutils-2.32/ld/testsuite/ld-srec/srec.exp
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-srec/srec.exp 2019-02-15 13:33:21.938627615 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-srec/srec.exp 2019-02-15 13:53:58.744814006 +0000
|
|
||||||
@@ -21,6 +21,8 @@
|
|
||||||
|
|
||||||
# Get the offset from an S-record line to the start of the data.
|
|
||||||
|
|
||||||
+return
|
|
||||||
+
|
|
||||||
proc srec_off { l } {
|
|
||||||
if [string match "S1*" $l] {
|
|
||||||
return 8
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-10.d 2019-02-15 14:10:59.038709514 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-10.d 2019-02-15 14:13:53.532300721 +0000
|
|
||||||
@@ -32,7 +32,7 @@ hook called: claim_file tmpdir/func.o \[
|
|
||||||
hook called: claim_file tmpdir/libtext.a \[@.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
#...
|
|
||||||
hook called: cleanup.
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-11.d binutils-2.32/ld/testsuite/ld-plugin/plugin-11.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-11.d 2019-02-15 14:10:59.041709490 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-11.d 2019-02-15 14:14:50.061844322 +0000
|
|
||||||
@@ -35,8 +35,9 @@ hook called: claim_file tmpdir/func.o \[
|
|
||||||
hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-18.d binutils-2.32/ld/testsuite/ld-plugin/plugin-18.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-18.d 2019-02-15 14:10:58.942710289 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-18.d 2019-02-15 14:15:20.030602369 +0000
|
|
||||||
@@ -32,7 +32,8 @@ hook called: claim_file .*/ld/testsuite/
|
|
||||||
hook called: claim_file tmpdir/libtext.a \[@.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-19.d binutils-2.32/ld/testsuite/ld-plugin/plugin-19.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-19.d 2019-02-15 14:10:59.024709627 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-19.d 2019-02-15 14:15:54.926320633 +0000
|
|
||||||
@@ -35,8 +35,9 @@ hook called: claim_file .*/ld/testsuite/
|
|
||||||
hook called: claim_file tmpdir/libtext.a \[@.* CLAIMED
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
-Sym: '_?text' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?text' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
+#...
|
|
||||||
hook called: cleanup.
|
|
||||||
#...
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-28.d 2019-02-15 14:10:58.998709837 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-28.d 2019-02-15 14:12:19.856057024 +0000
|
|
||||||
@@ -1,3 +1,2 @@
|
|
||||||
.*: error: Error
|
|
||||||
#...
|
|
||||||
-
|
|
||||||
diff -rup binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d
|
|
||||||
--- binutils-2.32.orig/ld/testsuite/ld-plugin/plugin-8.d 2019-02-15 14:10:59.074709224 +0000
|
|
||||||
+++ binutils-2.32/ld/testsuite/ld-plugin/plugin-8.d 2019-02-15 14:11:48.144313048 +0000
|
|
||||||
@@ -30,7 +30,7 @@ hook called: claim_file tmpdir/func.o \[
|
|
||||||
hook called: claim_file tmpdir/text.o \[@0/.* not claimed
|
|
||||||
#...
|
|
||||||
hook called: all symbols read.
|
|
||||||
-Sym: '_?func' Resolution: LDPR_PREVAILING_DEF
|
|
||||||
+Sym: '_?func' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
Sym: '_?func2' Resolution: LDPR_PREVAILING_DEF_IRONLY
|
|
||||||
#...
|
|
||||||
hook called: cleanup.
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-elfvers/vers24.rd binutils-2.30/ld/testsuite/ld-elfvers/vers24.rd
|
|
||||||
--- binutils.orig/ld/testsuite/ld-elfvers/vers24.rd 2018-09-05 09:45:44.013108697 +0100
|
|
||||||
+++ binutils-2.30/ld/testsuite/ld-elfvers/vers24.rd 2018-09-05 12:06:17.287425232 +0100
|
|
||||||
@@ -7,9 +7,9 @@ Symbol table '.dynsym' contains [0-9]+ e
|
|
||||||
# And ensure the dynamic symbol table contains at least x@VERS.0
|
|
||||||
# and foo@@VERS.0 symbols
|
|
||||||
#...
|
|
||||||
- +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0
|
|
||||||
+ +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0.*
|
|
||||||
#...
|
|
||||||
- +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0
|
|
||||||
+ +[0-9]+: [0-9a-f]+ +(4 +OBJECT +GLOBAL +DEFAULT +[0-9]+ _?x|[0-9]+ +FUNC +GLOBAL +DEFAULT .* [0-9]+ _?foo@)@VERS\.0.*
|
|
||||||
#...
|
|
||||||
Symbol table '.symtab' contains [0-9]+ entries:
|
|
||||||
#pass
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-plugin/plugin.exp binutils-2.30/ld/testsuite/ld-plugin/plugin.exp
|
|
||||||
--- binutils.orig/ld/testsuite/ld-plugin/plugin.exp 2018-09-05 09:45:44.023108605 +0100
|
|
||||||
+++ binutils-2.30/ld/testsuite/ld-plugin/plugin.exp 2018-09-05 11:18:53.997202105 +0100
|
|
||||||
@@ -118,6 +118,12 @@ if { $can_compile && !$failed_compile }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+# I do not know why, but the underscore prefix test is going
|
|
||||||
+# wrong on ppc64le targets. So override it here.
|
|
||||||
+if { [istarget powerpc*-*-linux*] || [istarget x86_64*-*-linux*] } {
|
|
||||||
+ set _ ""
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
set testobjfiles "tmpdir/main.o tmpdir/func.o tmpdir/text.o"
|
|
||||||
set testobjfiles_notext "tmpdir/main.o tmpdir/func.o"
|
|
||||||
set testsrcfiles "tmpdir/main.o $srcdir/$subdir/func.c tmpdir/text.o"
|
|
||||||
|
|
@ -1,93 +0,0 @@
|
||||||
From b53c44bfe31fb036f212275b6d70edd5eee7b088 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Jan Beulich via Binutils <binutils@sourceware.org>
|
|
||||||
Date: Tue, 9 Aug 2022 13:12:03 +0200
|
|
||||||
Subject: [PATCH] gas/Dwarf: properly skip zero-size functions
|
|
||||||
|
|
||||||
PR gas/29451
|
|
||||||
|
|
||||||
While out_debug_abbrev() properly skips such functions, out_debug_info()
|
|
||||||
mistakenly didn't. It needs to calculate the high_pc expression ahead of
|
|
||||||
time, in order to skip emitting any data for the function if the value
|
|
||||||
is zero.
|
|
||||||
|
|
||||||
The one case which would still leave a zero-size entry is when
|
|
||||||
symbol_get_obj(symp)->size ends up evaluating to zero. I hope we can
|
|
||||||
expect that to not be the case, otherwise we'd need to have a way to
|
|
||||||
post-process .debug_info contents between resolving expressions and
|
|
||||||
actually writing the data out to the file. Even then it wouldn't be
|
|
||||||
entirely obvious in which way to alter the data.
|
|
||||||
---
|
|
||||||
gas/dwarf2dbg.c | 39 ++++++++++++++++++++-------------------
|
|
||||||
1 file changed, 20 insertions(+), 19 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/gas/dwarf2dbg.c b/gas/dwarf2dbg.c
|
|
||||||
index 868ec79ee2c..f346bd6a412 100644
|
|
||||||
--- a/gas/dwarf2dbg.c
|
|
||||||
+++ b/gas/dwarf2dbg.c
|
|
||||||
@@ -2882,6 +2882,7 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT str_seg,
|
|
||||||
{
|
|
||||||
const char *name;
|
|
||||||
size_t len;
|
|
||||||
+ expressionS size = { .X_op = O_constant };
|
|
||||||
|
|
||||||
/* Skip warning constructs (see above). */
|
|
||||||
if (symbol_get_bfdsym (symp)->flags & BSF_WARNING)
|
|
||||||
@@ -2895,6 +2896,18 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT str_seg,
|
|
||||||
if (!S_IS_DEFINED (symp) || !S_IS_FUNCTION (symp))
|
|
||||||
continue;
|
|
||||||
|
|
||||||
+#if defined (OBJ_ELF) /* || defined (OBJ_MAYBE_ELF) */
|
|
||||||
+ size.X_add_number = S_GET_SIZE (symp);
|
|
||||||
+ if (size.X_add_number == 0 && IS_ELF
|
|
||||||
+ && symbol_get_obj (symp)->size != NULL)
|
|
||||||
+ {
|
|
||||||
+ size.X_op = O_add;
|
|
||||||
+ size.X_op_symbol = make_expr_symbol (symbol_get_obj (symp)->size);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+ if (size.X_op == O_constant && size.X_add_number == 0)
|
|
||||||
+ continue;
|
|
||||||
+
|
|
||||||
subseg_set (str_seg, 0);
|
|
||||||
name_sym = symbol_temp_new_now_octets ();
|
|
||||||
name = S_GET_NAME (symp);
|
|
||||||
@@ -2920,29 +2933,17 @@ out_debug_info (segT info_seg, segT abbrev_seg, segT line_seg, segT str_seg,
|
|
||||||
emit_expr (&exp, sizeof_address);
|
|
||||||
|
|
||||||
/* DW_AT_high_pc */
|
|
||||||
- exp.X_op = O_constant;
|
|
||||||
-#if defined (OBJ_ELF) /* || defined (OBJ_MAYBE_ELF) */
|
|
||||||
- exp.X_add_number = S_GET_SIZE (symp);
|
|
||||||
- if (exp.X_add_number == 0 && IS_ELF
|
|
||||||
- && symbol_get_obj (symp)->size != NULL)
|
|
||||||
- {
|
|
||||||
- exp.X_op = O_add;
|
|
||||||
- exp.X_op_symbol = make_expr_symbol (symbol_get_obj (symp)->size);
|
|
||||||
- }
|
|
||||||
-#else
|
|
||||||
- exp.X_add_number = 0;
|
|
||||||
-#endif
|
|
||||||
if (DWARF2_VERSION < 4)
|
|
||||||
{
|
|
||||||
- if (exp.X_op == O_constant)
|
|
||||||
- exp.X_op = O_symbol;
|
|
||||||
- exp.X_add_symbol = symp;
|
|
||||||
- emit_expr (&exp, sizeof_address);
|
|
||||||
+ if (size.X_op == O_constant)
|
|
||||||
+ size.X_op = O_symbol;
|
|
||||||
+ size.X_add_symbol = symp;
|
|
||||||
+ emit_expr (&size, sizeof_address);
|
|
||||||
}
|
|
||||||
- else if (exp.X_op == O_constant)
|
|
||||||
- out_uleb128 (exp.X_add_number);
|
|
||||||
+ else if (size.X_op == O_constant)
|
|
||||||
+ out_uleb128 (size.X_add_number);
|
|
||||||
else
|
|
||||||
- emit_leb128_expr (symbol_get_value_expression (exp.X_op_symbol), 0);
|
|
||||||
+ emit_leb128_expr (symbol_get_value_expression (size.X_op_symbol), 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
/* End of children. */
|
|
||||||
--
|
|
||||||
2.37.1
|
|
||||||
|
|
||||||
11
binutils-gold-empty-dwp.patch
Normal file
11
binutils-gold-empty-dwp.patch
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
--- binutils.orig/gold/dwp.cc 2023-05-02 13:26:44.075148082 +0100
|
||||||
|
+++ binutils-2.40/gold/dwp.cc 2023-05-02 13:27:16.189130127 +0100
|
||||||
|
@@ -2418,6 +2418,8 @@ main(int argc, char** argv)
|
||||||
|
{
|
||||||
|
Dwo_file exe_file(exe_filename);
|
||||||
|
exe_file.read_executable(&files);
|
||||||
|
+ if (files.empty())
|
||||||
|
+ gold_fatal(_("Could not find any dwo links in specified EXE"));
|
||||||
|
}
|
||||||
|
|
||||||
|
// Add any additional files listed on command line.
|
||||||
16
binutils-gold-ignore-execstack-error.patch
Normal file
16
binutils-gold-ignore-execstack-error.patch
Normal file
|
|
@ -0,0 +1,16 @@
|
||||||
|
diff -rup binutils.orig/gold/options.h binutils-2.41/gold/options.h
|
||||||
|
--- binutils.orig/gold/options.h 2024-01-04 09:52:09.282002253 +0000
|
||||||
|
+++ binutils-2.41/gold/options.h 2024-01-04 09:52:51.890972630 +0000
|
||||||
|
@@ -855,6 +855,12 @@ class General_options
|
||||||
|
N_("(ARM only) Do not warn about objects with incompatible "
|
||||||
|
"enum sizes"));
|
||||||
|
|
||||||
|
+ DEFINE_bool_ignore(error_execstack, options::TWO_DASHES, '\0',
|
||||||
|
+ N_("Ignored"), N_("Ignored"));
|
||||||
|
+
|
||||||
|
+ DEFINE_bool_ignore(error_rwx_segments, options::TWO_DASHES, '\0',
|
||||||
|
+ N_("Ignored"), N_("Ignored"));
|
||||||
|
+
|
||||||
|
DEFINE_special(exclude_libs, options::TWO_DASHES, '\0',
|
||||||
|
N_("Exclude libraries from automatic export"),
|
||||||
|
N_(("lib,lib ...")));
|
||||||
27
binutils-gold-pack-relative-relocs.patch
Normal file
27
binutils-gold-pack-relative-relocs.patch
Normal file
|
|
@ -0,0 +1,27 @@
|
||||||
|
diff --git a/gold/options.cc b/gold/options.cc
|
||||||
|
index c9834b66159..91d7802fffe 100644
|
||||||
|
--- a/gold/options.cc
|
||||||
|
+++ b/gold/options.cc
|
||||||
|
@@ -989,7 +989,7 @@ parse_short_option(int argc, const char** argv, int pos_in_argv_i,
|
||||||
|
}
|
||||||
|
|
||||||
|
// If we're a -z option, we need to parse our argument as a
|
||||||
|
- // long-option, e.g. "-z stacksize=8192".
|
||||||
|
+ // long-option, e.g. "-z stack-size=8192".
|
||||||
|
if (retval == &dash_z)
|
||||||
|
{
|
||||||
|
int dummy_i = 0;
|
||||||
|
diff --git a/gold/options.h b/gold/options.h
|
||||||
|
index 46f658f23ea..d16e38066da 100644
|
||||||
|
--- a/gold/options.h
|
||||||
|
+++ b/gold/options.h
|
||||||
|
@@ -1110,6 +1110,9 @@ class General_options
|
||||||
|
N_("Generate package metadata note"),
|
||||||
|
N_("[=JSON]"));
|
||||||
|
|
||||||
|
+ DEFINE_bool_ignore(pack_relative_relocs, options::DASH_Z, '\0',
|
||||||
|
+ N_("Ignored"), N_("Ignored"));
|
||||||
|
+
|
||||||
|
DEFINE_bool(pie, options::ONE_DASH, '\0', false,
|
||||||
|
N_("Create a position independent executable"),
|
||||||
|
N_("Do not create a position independent executable"));
|
||||||
40
binutils-gold-s390-configure.patch
Normal file
40
binutils-gold-s390-configure.patch
Normal file
|
|
@ -0,0 +1,40 @@
|
||||||
|
# The gold linker does not build if the target list includes s390x-linux
|
||||||
|
# but does not include s390-linux. ie it needs the 32-bit target to be
|
||||||
|
# enabled in order for the 64-bit target to work. On the other hand the
|
||||||
|
# BFD library does not support the 32-bit s390 target. So this patch
|
||||||
|
# "enhances" the gold configure script so that if s390x is listed, the
|
||||||
|
# s390 target will automatically be added to the list as well.
|
||||||
|
|
||||||
|
diff -upr orig/gold/configure binutils-2.47/gold/configure
|
||||||
|
--- orig/gold/configure 2026-07-27 09:38:54.907192013 +0100
|
||||||
|
+++ binutils-2.47/gold/configure 2026-07-27 10:12:02.759629540 +0100
|
||||||
|
@@ -5223,7 +5223,12 @@ if test -n "$enable_targets"; then
|
||||||
|
for targ in `echo $enable_targets | sed -e 's/,/ /g'`; do
|
||||||
|
result=`$ac_config_sub $targ 2>/dev/null`
|
||||||
|
if test -n "$result"; then
|
||||||
|
- canon_targets="$canon_targets $result"
|
||||||
|
+ canon_targets="$canon_targets $result" ;
|
||||||
|
+ case "$result" in
|
||||||
|
+ s390x-*)
|
||||||
|
+ canon_targets="$canon_targets s390-gnu-linux"
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
else
|
||||||
|
# Permit unrecognized target names, like "all".
|
||||||
|
canon_targets="$canon_targets $targ"
|
||||||
|
diff -upr orig/gold/configure.ac binutils-2.47/gold/configure.ac
|
||||||
|
--- orig/gold/configure.ac 2026-07-27 09:38:54.907192013 +0100
|
||||||
|
+++ binutils-2.47/gold/configure.ac 2026-07-27 10:18:18.480766140 +0100
|
||||||
|
@@ -133,6 +133,12 @@ if test -n "$enable_targets"; then
|
||||||
|
result=`$ac_config_sub $targ 2>/dev/null`
|
||||||
|
if test -n "$result"; then
|
||||||
|
canon_targets="$canon_targets $result"
|
||||||
|
+ # Hack: Enable the s390-linux target if s390x-linux is enabled.
|
||||||
|
+ case "$result" in
|
||||||
|
+ s390x-*)
|
||||||
|
+ canon_targets="$canon_targets s390-gnu-linux"
|
||||||
|
+ ;;
|
||||||
|
+ esac
|
||||||
|
else
|
||||||
|
# Permit unrecognized target names, like "all".
|
||||||
|
canon_targets="$canon_targets $targ"
|
||||||
|
|
@ -24,26 +24,6 @@ diff -rup binutils.orig/gold/configure.ac binutils-2.34/gold/configure.ac
|
||||||
else
|
else
|
||||||
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
|
targetobjs="$targetobjs ${targ_obj}.\$(OBJEXT)"
|
||||||
if test "$targ_extra_obj" != ""; then
|
if test "$targ_extra_obj" != ""; then
|
||||||
--- binutils.orig/ld/configure.tgt 2020-04-20 12:35:12.465301359 +0100
|
|
||||||
+++ binutils-2.34/ld/configure.tgt 2020-04-20 14:17:52.123066333 +0100
|
|
||||||
@@ -220,7 +220,7 @@ bfin-*-linux-uclibc*) targ_emul=elf32bfi
|
|
||||||
targ_extra_emuls="elf32bfin"
|
|
||||||
targ_extra_libpath=$targ_extra_emuls
|
|
||||||
;;
|
|
||||||
-bpf-*-*) targ_emul=elf64bpf
|
|
||||||
+bpf-* | bpf-*-*) targ_emul=elf64bpf
|
|
||||||
;;
|
|
||||||
cr16-*-elf*) targ_emul=elf32cr16
|
|
||||||
;;
|
|
||||||
@@ -1026,7 +1026,7 @@ z8k-*-coff) targ_emul=z8002
|
|
||||||
targ_extra_ofiles=
|
|
||||||
;;
|
|
||||||
*)
|
|
||||||
- echo 2>&1 "*** ld does not support target ${targ}"
|
|
||||||
+ echo 2>&1 "*** ld does not support target '${targ}' NO REALLY"
|
|
||||||
echo 2>&1 "*** see ld/configure.tgt for supported targets"
|
|
||||||
exit 1
|
|
||||||
|
|
||||||
--- binutils.orig/bfd/config.bfd 2020-04-20 12:35:13.038297375 +0100
|
--- binutils.orig/bfd/config.bfd 2020-04-20 12:35:13.038297375 +0100
|
||||||
+++ binutils-2.34/bfd/config.bfd 2020-04-20 14:25:26.452869193 +0100
|
+++ binutils-2.34/bfd/config.bfd 2020-04-20 14:25:26.452869193 +0100
|
||||||
@@ -473,7 +473,7 @@ case "${targ}" in
|
@@ -473,7 +473,7 @@ case "${targ}" in
|
||||||
|
|
@ -55,12 +35,14 @@ diff -rup binutils.orig/gold/configure.ac binutils-2.34/gold/configure.ac
|
||||||
targ_defvec=bpf_elf64_le_vec
|
targ_defvec=bpf_elf64_le_vec
|
||||||
targ_selvecs=bpf_elf64_be_vec
|
targ_selvecs=bpf_elf64_be_vec
|
||||||
targ_underscore=yes
|
targ_underscore=yes
|
||||||
@@ -1427,7 +1427,7 @@ case "${targ}" in
|
--- binutils.orig/ld/configure.tgt 2026-01-05 08:51:02.908224792 +0000
|
||||||
;;
|
+++ binutils-with-gold-2.45.50-be970c68891/ld/configure.tgt 2026-01-05 08:51:55.852677409 +0000
|
||||||
|
@@ -255,7 +255,7 @@ bfin-*-uclinux*) targ_emul=elf32bfin;
|
||||||
*)
|
bfin-*-linux-uclibc*) targ_emul=elf32bfinfd;
|
||||||
- echo 1>&2 "*** BFD does not support target ${targ}."
|
targ_extra_libpath=elf32bfin
|
||||||
+ echo 1>&2 "*** BFD does not support target '${targ}'. Honest."
|
;;
|
||||||
echo 1>&2 "*** Look in bfd/config.bfd for supported targets."
|
-bpf-*-*) targ_emul=elf64bpf
|
||||||
exit 1
|
+bpf-* | bpf-*-*) targ_emul=elf64bpf
|
||||||
;;
|
;;
|
||||||
|
cr16-*-elf*) targ_emul=elf32cr16
|
||||||
|
;;
|
||||||
|
|
|
||||||
52
binutils-ld-default-z-text.patch
Normal file
52
binutils-ld-default-z-text.patch
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
diff -rup binutils.orig/bfd/elflink.c binutils-with-gold-2.45.50-be970c68891/bfd/elflink.c
|
||||||
|
--- binutils.orig/bfd/elflink.c 2026-01-14 09:21:14.835847967 +0000
|
||||||
|
+++ binutils-with-gold-2.45.50-be970c68891/bfd/elflink.c 2026-01-14 09:23:48.780495205 +0000
|
||||||
|
@@ -13786,7 +13786,7 @@ _bfd_elf_final_link (bfd *abfd, struct b
|
||||||
|
{
|
||||||
|
if (info->textrel_check == textrel_check_error)
|
||||||
|
info->callbacks->einfo
|
||||||
|
- (_("%P%X: read-only segment has dynamic relocations\n"));
|
||||||
|
+ (_("%P%X: error: read-only segment has dynamic relocations\n"));
|
||||||
|
else if (bfd_link_dll (info))
|
||||||
|
info->callbacks->einfo
|
||||||
|
(_("%P: warning: creating DT_TEXTREL in a shared object\n"));
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-mode.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-mode.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-mode.d 2026-01-14 09:21:15.248851537 +0000
|
||||||
|
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-mode.d 2026-01-14 09:22:24.603416270 +0000
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
#source: dt-memtag.s
|
||||||
|
-#ld: -shared -z memtag-mode=async
|
||||||
|
+#ld: -shared -z memtag-mode=async -z notext
|
||||||
|
#readelf: -d
|
||||||
|
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-stack.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-stack.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-aarch64/dt-memtag-stack.d 2026-01-14 09:21:15.248851537 +0000
|
||||||
|
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/dt-memtag-stack.d 2026-01-14 09:24:19.594780414 +0000
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
#source: dt-memtag.s
|
||||||
|
-#ld: -shared -z memtag-stack
|
||||||
|
+#ld: -shared -z memtag-stack -z notext
|
||||||
|
#readelf: -d
|
||||||
|
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-aarch64/relr-text-pie.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-pie.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-aarch64/relr-text-pie.d 2026-01-14 09:21:15.246851520 +0000
|
||||||
|
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-pie.d 2026-01-14 09:24:45.363485698 +0000
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
#source: relr-text.s
|
||||||
|
-#ld: -pie -z pack-relative-relocs -T relocs.ld
|
||||||
|
+#ld: -pie -z pack-relative-relocs -T relocs.ld -z notext
|
||||||
|
#readelf: -drW
|
||||||
|
|
||||||
|
#...
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-aarch64/relr-text-shared.d binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-shared.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-aarch64/relr-text-shared.d 2026-01-14 09:21:15.246851520 +0000
|
||||||
|
+++ binutils-with-gold-2.45.50-be970c68891/ld/testsuite/ld-aarch64/relr-text-shared.d 2026-01-14 09:25:06.651664713 +0000
|
||||||
|
@@ -1,5 +1,5 @@
|
||||||
|
#source: relr-text.s
|
||||||
|
-#ld: -shared -z pack-relative-relocs -T relocs.ld
|
||||||
|
+#ld: -shared -z pack-relative-relocs -T relocs.ld -z notext
|
||||||
|
#readelf: -drW
|
||||||
|
|
||||||
|
#...
|
||||||
|
|
@ -1,158 +0,0 @@
|
||||||
From a0b911576eb49e06a457ebf757b42543d2c7e548 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Luca Boccassi <luca.boccassi@microsoft.com>
|
|
||||||
Date: Wed, 21 Jul 2021 14:32:03 +0100
|
|
||||||
Subject: [PATCH] Allows linker scripts to set the SEC_READONLY flag.
|
|
||||||
|
|
||||||
* ld.texi: Document new output section type.
|
|
||||||
* ldgram.y: Add new token.
|
|
||||||
* ldlang.c: Handle the new flag.
|
|
||||||
* ldlang.h: Add readonly_section to list of section types.
|
|
||||||
* ldlex.l: Add a new identifier.
|
|
||||||
* testsuite/ld-scripts/output-section-types.t: New example linker script.
|
|
||||||
* testsuite/ld-scripts/output-section-types.d: Test driver.
|
|
||||||
* testsyute/ld-scripts/script.exp: Run the new test.
|
|
||||||
|
|
||||||
(cherry picked from commit 6b86da53d5ee2022b9065f445d23356190380746)
|
|
||||||
---
|
|
||||||
ld/ld.texi | 2 ++
|
|
||||||
ld/ldgram.y | 2 ++
|
|
||||||
ld/ldlang.c | 6 ++++++
|
|
||||||
ld/ldlang.h | 3 ++-
|
|
||||||
ld/ldlex.l | 1 +
|
|
||||||
ld/testsuite/ld-scripts/output-section-types.d | 13 +++++++++++++
|
|
||||||
ld/testsuite/ld-scripts/output-section-types.t | 7 +++++++
|
|
||||||
ld/testsuite/ld-scripts/script.exp | 1 +
|
|
||||||
8 files changed, 34 insertions(+), 1 deletion(-)
|
|
||||||
create mode 100644 ld/testsuite/ld-scripts/output-section-types.d
|
|
||||||
create mode 100644 ld/testsuite/ld-scripts/output-section-types.t
|
|
||||||
|
|
||||||
diff --git a/ld/ld.texi b/ld/ld.texi
|
|
||||||
index dd8f571d4e4..cf1e637adbf 100644
|
|
||||||
--- a/ld/ld.texi
|
|
||||||
+++ b/ld/ld.texi
|
|
||||||
@@ -5456,6 +5456,8 @@ parentheses. The following types are defined:
|
|
||||||
@item NOLOAD
|
|
||||||
The section should be marked as not loadable, so that it will not be
|
|
||||||
loaded into memory when the program is run.
|
|
||||||
+@item READONLY
|
|
||||||
+The section should be marked as read-only.
|
|
||||||
@item DSECT
|
|
||||||
@itemx COPY
|
|
||||||
@itemx INFO
|
|
||||||
diff --git a/ld/ldgram.y b/ld/ldgram.y
|
|
||||||
index dd911f46169..31e0071c6fc 100644
|
|
||||||
--- a/ld/ldgram.y
|
|
||||||
+++ b/ld/ldgram.y
|
|
||||||
@@ -139,6 +139,7 @@ static int error_index;
|
|
||||||
%token REGION_ALIAS
|
|
||||||
%token LD_FEATURE
|
|
||||||
%token NOLOAD DSECT COPY INFO OVERLAY
|
|
||||||
+%token READONLY
|
|
||||||
%token DEFINED TARGET_K SEARCH_DIR MAP ENTRY
|
|
||||||
%token <integer> NEXT
|
|
||||||
%token SIZEOF ALIGNOF ADDR LOADADDR MAX_K MIN_K
|
|
||||||
@@ -1123,6 +1124,7 @@ type:
|
|
||||||
| COPY { sectype = noalloc_section; }
|
|
||||||
| INFO { sectype = noalloc_section; }
|
|
||||||
| OVERLAY { sectype = noalloc_section; }
|
|
||||||
+ | READONLY { sectype = readonly_section; }
|
|
||||||
;
|
|
||||||
|
|
||||||
atype:
|
|
||||||
diff --git a/ld/ldlang.c b/ld/ldlang.c
|
|
||||||
index 37b64c89ee1..2610be995ca 100644
|
|
||||||
--- a/ld/ldlang.c
|
|
||||||
+++ b/ld/ldlang.c
|
|
||||||
@@ -2639,6 +2639,9 @@ lang_add_section (lang_statement_list_type *ptr,
|
|
||||||
case noalloc_section:
|
|
||||||
flags &= ~SEC_ALLOC;
|
|
||||||
break;
|
|
||||||
+ case readonly_section:
|
|
||||||
+ flags |= SEC_READONLY;
|
|
||||||
+ break;
|
|
||||||
case noload_section:
|
|
||||||
flags &= ~SEC_LOAD;
|
|
||||||
flags |= SEC_NEVER_LOAD;
|
|
||||||
@@ -4232,6 +4235,9 @@ map_input_to_output_sections
|
|
||||||
case noalloc_section:
|
|
||||||
flags = SEC_HAS_CONTENTS;
|
|
||||||
break;
|
|
||||||
+ case readonly_section:
|
|
||||||
+ flags |= SEC_READONLY;
|
|
||||||
+ break;
|
|
||||||
case noload_section:
|
|
||||||
if (bfd_get_flavour (link_info.output_bfd)
|
|
||||||
== bfd_target_elf_flavour)
|
|
||||||
diff --git a/ld/ldlang.h b/ld/ldlang.h
|
|
||||||
index 6fbe16d97d9..f68ae27b409 100644
|
|
||||||
--- a/ld/ldlang.h
|
|
||||||
+++ b/ld/ldlang.h
|
|
||||||
@@ -121,7 +121,8 @@ enum section_type
|
|
||||||
first_overlay_section,
|
|
||||||
overlay_section,
|
|
||||||
noload_section,
|
|
||||||
- noalloc_section
|
|
||||||
+ noalloc_section,
|
|
||||||
+ readonly_section
|
|
||||||
};
|
|
||||||
|
|
||||||
/* This structure holds a list of program headers describing
|
|
||||||
diff --git a/ld/ldlex.l b/ld/ldlex.l
|
|
||||||
index c1b15263587..25b4bcaae01 100644
|
|
||||||
--- a/ld/ldlex.l
|
|
||||||
+++ b/ld/ldlex.l
|
|
||||||
@@ -294,6 +294,7 @@ V_IDENTIFIER [*?.$_a-zA-Z\[\]\-\!\^\\]([*?.$_a-zA-Z0-9\[\]\-\!\^\\]|::)*
|
|
||||||
<BOTH,SCRIPT>"SORT_BY_INIT_PRIORITY" { RTOKEN(SORT_BY_INIT_PRIORITY); }
|
|
||||||
<BOTH,SCRIPT>"SORT_NONE" { RTOKEN(SORT_NONE); }
|
|
||||||
<EXPRESSION,BOTH,SCRIPT>"NOLOAD" { RTOKEN(NOLOAD);}
|
|
||||||
+<EXPRESSION,BOTH,SCRIPT>"READONLY" { RTOKEN(READONLY);}
|
|
||||||
<EXPRESSION,BOTH,SCRIPT>"DSECT" { RTOKEN(DSECT);}
|
|
||||||
<EXPRESSION,BOTH,SCRIPT>"COPY" { RTOKEN(COPY);}
|
|
||||||
<EXPRESSION,BOTH,SCRIPT>"INFO" { RTOKEN(INFO);}
|
|
||||||
diff --git a/ld/testsuite/ld-scripts/output-section-types.d b/ld/testsuite/ld-scripts/output-section-types.d
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000000..ab124fa4dd7
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/ld/testsuite/ld-scripts/output-section-types.d
|
|
||||||
@@ -0,0 +1,13 @@
|
|
||||||
+#ld: -Toutput-section-types.t
|
|
||||||
+#source: align2a.s
|
|
||||||
+#objdump: -h
|
|
||||||
+#target: [is_elf_format]
|
|
||||||
+
|
|
||||||
+#...
|
|
||||||
+ . \.rom.*
|
|
||||||
+[ ]+ALLOC, READONLY
|
|
||||||
+ . \.ro.*
|
|
||||||
+[ ]+CONTENTS, ALLOC, LOAD, READONLY, DATA
|
|
||||||
+ . \.over.*
|
|
||||||
+[ ]+CONTENTS, READONLY
|
|
||||||
+#pass
|
|
||||||
diff --git a/ld/testsuite/ld-scripts/output-section-types.t b/ld/testsuite/ld-scripts/output-section-types.t
|
|
||||||
new file mode 100644
|
|
||||||
index 00000000000..d8fdfda1a03
|
|
||||||
--- /dev/null
|
|
||||||
+++ b/ld/testsuite/ld-scripts/output-section-types.t
|
|
||||||
@@ -0,0 +1,7 @@
|
|
||||||
+SECTIONS {
|
|
||||||
+ .rom (NOLOAD) : { LONG(1234); }
|
|
||||||
+ .ro (READONLY) : { LONG(5678); }
|
|
||||||
+ .over (OVERLAY) : { LONG(0123); }
|
|
||||||
+ /DISCARD/ : { *(*) }
|
|
||||||
+
|
|
||||||
+}
|
|
||||||
diff --git a/ld/testsuite/ld-scripts/script.exp b/ld/testsuite/ld-scripts/script.exp
|
|
||||||
index 961cd08c4b1..ff50199b3ae 100644
|
|
||||||
--- a/ld/testsuite/ld-scripts/script.exp
|
|
||||||
+++ b/ld/testsuite/ld-scripts/script.exp
|
|
||||||
@@ -229,6 +229,7 @@ foreach test_script $test_script_list {
|
|
||||||
|
|
||||||
run_dump_test "align-with-input"
|
|
||||||
run_dump_test "pr20302"
|
|
||||||
+run_dump_test "output-section-types"
|
|
||||||
|
|
||||||
run_dump_test "segment-start" {{name (default)}}
|
|
||||||
run_dump_test "segment-start" {{name (overridden)} \
|
|
||||||
--
|
|
||||||
2.30.2
|
|
||||||
|
|
||||||
|
|
@ -1,283 +0,0 @@
|
||||||
diff -rup binutils.orig/libiberty/acinclude.m4 binutils-2.39/libiberty/acinclude.m4
|
|
||||||
--- binutils.orig/libiberty/acinclude.m4 2022-11-23 14:41:57.639262100 +0000
|
|
||||||
+++ binutils-2.39/libiberty/acinclude.m4 2022-11-23 14:43:07.139042148 +0000
|
|
||||||
@@ -24,6 +24,8 @@ AC_CACHE_CHECK([for working strncmp], ac
|
|
||||||
[AC_TRY_RUN([
|
|
||||||
/* Test by Jim Wilson and Kaveh Ghazi.
|
|
||||||
Check whether strncmp reads past the end of its string parameters. */
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_FCNTL_H
|
|
||||||
@@ -51,7 +53,8 @@ AC_CACHE_CHECK([for working strncmp], ac
|
|
||||||
|
|
||||||
#define MAP_LEN 0x10000
|
|
||||||
|
|
||||||
-main ()
|
|
||||||
+int
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
#if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
|
|
||||||
char *p;
|
|
||||||
@@ -157,7 +160,10 @@ if test $ac_cv_os_cray = yes; then
|
|
||||||
fi
|
|
||||||
|
|
||||||
AC_CACHE_CHECK(stack direction for C alloca, ac_cv_c_stack_direction,
|
|
||||||
-[AC_TRY_RUN([find_stack_direction ()
|
|
||||||
+[AC_TRY_RUN([#include <stdlib.h>
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+find_stack_direction (void)
|
|
||||||
{
|
|
||||||
static char *addr = 0;
|
|
||||||
auto char dummy;
|
|
||||||
@@ -169,7 +175,9 @@ AC_CACHE_CHECK(stack direction for C all
|
|
||||||
else
|
|
||||||
return (&dummy > addr) ? 1 : -1;
|
|
||||||
}
|
|
||||||
-main ()
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
exit (find_stack_direction() < 0);
|
|
||||||
}],
|
|
||||||
diff -rup binutils.orig/libiberty/configure binutils-2.39/libiberty/configure
|
|
||||||
--- binutils.orig/libiberty/configure 2022-11-23 14:41:57.652262059 +0000
|
|
||||||
+++ binutils-2.39/libiberty/configure 2022-11-23 14:46:31.556395168 +0000
|
|
||||||
@@ -1766,7 +1766,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) >= 0)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1783,7 +1783,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1810,7 +1810,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) < 0)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1827,7 +1827,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) >= $ac_mid)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1862,7 +1862,7 @@ while test "x$ac_lo" != "x$ac_hi"; do
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
static int test_array [1 - 2 * !(($2) <= $ac_mid)];
|
|
||||||
test_array [0] = 0;
|
|
||||||
@@ -1892,7 +1892,7 @@ static unsigned long int ulongval () { r
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
FILE *f = fopen ("conftest.val", "w");
|
|
||||||
@@ -1952,7 +1952,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
if (sizeof ($2))
|
|
||||||
return 0;
|
|
||||||
@@ -1965,7 +1965,7 @@ if ac_fn_c_try_compile "$LINENO"; then :
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
if (sizeof (($2)))
|
|
||||||
return 0;
|
|
||||||
@@ -2037,7 +2037,7 @@ choke me
|
|
||||||
#endif
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
return $2 ();
|
|
||||||
;
|
|
||||||
@@ -2077,7 +2077,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
$4
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
#ifndef $as_decl_name
|
|
||||||
#ifdef __cplusplus
|
|
||||||
@@ -3459,7 +3459,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <stdio.h>
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
printf ("hello world\n");
|
|
||||||
;
|
|
||||||
@@ -3487,7 +3487,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3627,7 +3627,7 @@ cat confdefs.h - <<_ACEOF >conftest.$ac_
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <stdio.h>
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
FILE *f = fopen ("conftest.out", "w");
|
|
||||||
return ferror (f) || fclose (f) != 0;
|
|
||||||
@@ -3692,7 +3692,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3743,7 +3743,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
#ifndef __GNUC__
|
|
||||||
choke me
|
|
||||||
@@ -3784,7 +3784,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3799,7 +3799,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3815,7 +3815,7 @@ else
|
|
||||||
/* end confdefs.h. */
|
|
||||||
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
|
|
||||||
;
|
|
||||||
@@ -3901,7 +3901,7 @@ int pairnames (int, char **, FILE *(*)(s
|
|
||||||
int argc;
|
|
||||||
char **argv;
|
|
||||||
int
|
|
||||||
-main ()
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];
|
|
||||||
;
|
|
||||||
@@ -6919,7 +6919,10 @@ else
|
|
||||||
else
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
-find_stack_direction ()
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+find_stack_direction (void)
|
|
||||||
{
|
|
||||||
static char *addr = 0;
|
|
||||||
auto char dummy;
|
|
||||||
@@ -6931,7 +6934,9 @@ find_stack_direction ()
|
|
||||||
else
|
|
||||||
return (&dummy > addr) ? 1 : -1;
|
|
||||||
}
|
|
||||||
-main ()
|
|
||||||
+
|
|
||||||
+int
|
|
||||||
+main (int)
|
|
||||||
{
|
|
||||||
exit (find_stack_direction() < 0);
|
|
||||||
}
|
|
||||||
@@ -7756,6 +7761,8 @@ else
|
|
||||||
|
|
||||||
/* Test by Jim Wilson and Kaveh Ghazi.
|
|
||||||
Check whether strncmp reads past the end of its string parameters. */
|
|
||||||
+#include <stdlib.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <sys/types.h>
|
|
||||||
|
|
||||||
#ifdef HAVE_FCNTL_H
|
|
||||||
@@ -7783,7 +7790,8 @@ else
|
|
||||||
|
|
||||||
#define MAP_LEN 0x10000
|
|
||||||
|
|
||||||
-main ()
|
|
||||||
+int
|
|
||||||
+main (void)
|
|
||||||
{
|
|
||||||
#if defined(HAVE_MMAP) || defined(HAVE_MMAP_ANYWHERE)
|
|
||||||
char *p;
|
|
||||||
diff -rup binutils.orig/gas/acinclude.m4 binutils-2.39/gas/acinclude.m4
|
|
||||||
--- binutils.orig/gas/acinclude.m4 2022-11-23 14:56:11.793442492 +0000
|
|
||||||
+++ binutils-2.39/gas/acinclude.m4 2022-11-23 14:59:17.778057190 +0000
|
|
||||||
@@ -23,6 +23,7 @@ AC_DEFUN([GAS_WORKING_ASSERT],
|
|
||||||
[AC_MSG_CHECKING([for working assert macro])
|
|
||||||
AC_CACHE_VAL(gas_cv_assert_ok,
|
|
||||||
AC_TRY_LINK([#include <assert.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <stdio.h>], [
|
|
||||||
/* check for requoting problems */
|
|
||||||
static int a, b, c, d;
|
|
||||||
diff -rup binutils.orig/gas/configure binutils-2.39/gas/configure
|
|
||||||
--- binutils.orig/gas/configure 2022-11-23 14:56:12.402441231 +0000
|
|
||||||
+++ binutils-2.39/gas/configure 2022-11-23 14:59:37.266016817 +0000
|
|
||||||
@@ -13758,6 +13758,7 @@ else
|
|
||||||
cat confdefs.h - <<_ACEOF >conftest.$ac_ext
|
|
||||||
/* end confdefs.h. */
|
|
||||||
#include <assert.h>
|
|
||||||
+#include <string.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
int
|
|
||||||
main ()
|
|
||||||
|
|
@ -1,44 +0,0 @@
|
||||||
--- binutils.orig/binutils/objcopy.c 2023-01-16 12:15:46.405649346 +0000
|
|
||||||
+++ binutils-2.39/binutils/objcopy.c 2023-01-16 12:16:48.892667868 +0000
|
|
||||||
@@ -2383,6 +2383,8 @@ merge_gnu_build_notes (bfd * ab
|
|
||||||
other note then if they are both of the same type (open
|
|
||||||
or func) then they can be merged and one deleted. If
|
|
||||||
they are of different types then they cannot be merged. */
|
|
||||||
+ objcopy_internal_note * prev_note = NULL;
|
|
||||||
+
|
|
||||||
for (pnote = pnotes; pnote < pnotes_end; pnote ++)
|
|
||||||
{
|
|
||||||
/* Skip already deleted notes.
|
|
||||||
@@ -2404,7 +2406,9 @@ merge_gnu_build_notes (bfd * ab
|
|
||||||
objcopy_internal_note * back;
|
|
||||||
|
|
||||||
/* Rule 2: Check to see if there is an identical previous note. */
|
|
||||||
- for (iter = 0, back = pnote - 1; back >= pnotes; back --)
|
|
||||||
+ for (iter = 0, back = prev_note ? prev_note : pnote - 1;
|
|
||||||
+ back >= pnotes;
|
|
||||||
+ back --)
|
|
||||||
{
|
|
||||||
if (is_deleted_note (back))
|
|
||||||
continue;
|
|
||||||
@@ -2466,11 +2470,18 @@ merge_gnu_build_notes (bfd * ab
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
-#if DEBUG_MERGE
|
|
||||||
+
|
|
||||||
+
|
|
||||||
if (! is_deleted_note (pnote))
|
|
||||||
- merge_debug ("Unable to do anything with note at %#08lx\n",
|
|
||||||
- (pnote->note.namedata - (char *) contents) - 12);
|
|
||||||
+ {
|
|
||||||
+ /* Keep a pointer to this note, so that we can
|
|
||||||
+ start the next search for rule 2 matches here. */
|
|
||||||
+ prev_note = pnote;
|
|
||||||
+#if DEBUG_MERGE
|
|
||||||
+ merge_debug ("Unable to do anything with note at %#08lx\n",
|
|
||||||
+ (pnote->note.namedata - (char *) contents) - 12);
|
|
||||||
#endif
|
|
||||||
+ }
|
|
||||||
}
|
|
||||||
|
|
||||||
/* Resort the notes. */
|
|
||||||
|
|
@ -1,197 +0,0 @@
|
||||||
diff -rup binutils.orig/gold/Makefile.am binutils-2.38/gold/Makefile.am
|
|
||||||
--- binutils.orig/gold/Makefile.am 2022-08-04 11:11:01.788495165 +0100
|
|
||||||
+++ binutils-2.38/gold/Makefile.am 2022-08-04 11:12:26.124013955 +0100
|
|
||||||
@@ -35,7 +35,7 @@ THREADFLAGS = @PTHREAD_CFLAGS@
|
|
||||||
THREADLIBS = @PTHREAD_LIBS@
|
|
||||||
|
|
||||||
AM_CFLAGS = $(WARN_CFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) $(ZLIBINC) $(THREADFLAGS)
|
|
||||||
-AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) $(ZLIBINC) $(THREADFLAGS)
|
|
||||||
+AM_CXXFLAGS = $(WARN_CXXFLAGS) $(LFS_CFLAGS) $(RANDOM_SEED_CFLAGS) $(ZLIBINC) $(THREADFLAGS) $(JANSSON_CFLAGS)
|
|
||||||
AM_LDFLAGS = $(THREADFLAGS)
|
|
||||||
|
|
||||||
AM_CPPFLAGS = \
|
|
||||||
@@ -187,7 +187,7 @@ libgold_a_LIBADD = $(LIBOBJS)
|
|
||||||
sources_var = main.cc
|
|
||||||
deps_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
|
|
||||||
ldadd_var = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) \
|
|
||||||
- $(THREADLIBS) $(LIBDL) $(ZLIB)
|
|
||||||
+ $(THREADLIBS) $(LIBDL) $(ZLIB) $(JANSSON_LIBS)
|
|
||||||
ldflags_var = $(GOLD_LDFLAGS)
|
|
||||||
|
|
||||||
ld_new_SOURCES = $(sources_var)
|
|
||||||
@@ -201,12 +201,12 @@ incremental_dump_SOURCES = incremental-d
|
|
||||||
incremental_dump_DEPENDENCIES = $(TARGETOBJS) libgold.a $(LIBIBERTY) \
|
|
||||||
$(LIBINTL_DEP)
|
|
||||||
incremental_dump_LDADD = $(TARGETOBJS) libgold.a $(LIBIBERTY) $(LIBINTL) \
|
|
||||||
- $(THREADLIBS) $(LIBDL) $(ZLIB)
|
|
||||||
+ $(THREADLIBS) $(LIBDL) $(ZLIB) $(JANSSON_LIBS)
|
|
||||||
|
|
||||||
dwp_SOURCES = dwp.cc
|
|
||||||
dwp_DEPENDENCIES = libgold.a $(LIBIBERTY) $(LIBINTL_DEP)
|
|
||||||
dwp_LDADD = libgold.a $(LIBIBERTY) $(GOLD_LDADD) $(LIBINTL) $(THREADLIBS) \
|
|
||||||
- $(LIBDL) $(ZLIB)
|
|
||||||
+ $(LIBDL) $(ZLIB) $(JANSSON_LIBS)
|
|
||||||
dwp_LDFLAGS = $(GOLD_LDFLAGS)
|
|
||||||
|
|
||||||
CONFIG_STATUS_DEPENDENCIES = $(srcdir)/../bfd/development.sh
|
|
||||||
diff -rup binutils.orig/gold/configure.ac binutils-2.38/gold/configure.ac
|
|
||||||
--- binutils.orig/gold/configure.ac 2022-08-04 11:11:01.783495194 +0100
|
|
||||||
+++ binutils-2.38/gold/configure.ac 2022-08-04 11:12:26.124013955 +0100
|
|
||||||
@@ -591,6 +591,32 @@ if test "$threads" = "yes"; then
|
|
||||||
fi
|
|
||||||
AM_CONDITIONAL(THREADS, test "$threads" = "yes")
|
|
||||||
|
|
||||||
+# Used to validate --package-metadata= input. Disabled by default.
|
|
||||||
+AC_ARG_ENABLE([jansson],
|
|
||||||
+ [AS_HELP_STRING([--enable-jansson],
|
|
||||||
+ [enable jansson [default=no]])],
|
|
||||||
+ [enable_jansson=$enableval],
|
|
||||||
+ [enable_jansson="no"])
|
|
||||||
+
|
|
||||||
+if test "x$enable_jansson" != "xno"; then
|
|
||||||
+ PKG_PROG_PKG_CONFIG
|
|
||||||
+ AS_IF([test -n "$PKG_CONFIG"],
|
|
||||||
+ [
|
|
||||||
+ PKG_CHECK_MODULES(JANSSON, [jansson],
|
|
||||||
+ [
|
|
||||||
+ AC_DEFINE(HAVE_JANSSON, 1, [The jansson library is to be used])
|
|
||||||
+ AC_SUBST([JANSSON_CFLAGS])
|
|
||||||
+ AC_SUBST([JANSSON_LIBS])
|
|
||||||
+ ],
|
|
||||||
+ [
|
|
||||||
+ AC_MSG_ERROR([Cannot find jansson library])
|
|
||||||
+ ])
|
|
||||||
+ ],
|
|
||||||
+ [
|
|
||||||
+ AC_MSG_ERROR([Cannot find pkg-config])
|
|
||||||
+ ])
|
|
||||||
+fi
|
|
||||||
+
|
|
||||||
dnl We have to check these in C, not C++, because autoconf generates
|
|
||||||
dnl tests which have no type information, and current glibc provides
|
|
||||||
dnl multiple declarations of functions like basename when compiling
|
|
||||||
diff -rup binutils.orig/gold/layout.cc binutils-2.38/gold/layout.cc
|
|
||||||
--- binutils.orig/gold/layout.cc 2022-08-04 11:11:01.783495194 +0100
|
|
||||||
+++ binutils-2.38/gold/layout.cc 2022-08-04 11:12:26.125013949 +0100
|
|
||||||
@@ -38,6 +38,9 @@
|
|
||||||
#include <windows.h>
|
|
||||||
#include <rpcdce.h>
|
|
||||||
#endif
|
|
||||||
+#ifdef HAVE_JANSSON
|
|
||||||
+#include <jansson.h>
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#include "parameters.h"
|
|
||||||
#include "options.h"
|
|
||||||
@@ -2439,6 +2442,7 @@ Layout::create_notes()
|
|
||||||
this->create_gold_note();
|
|
||||||
this->create_stack_segment();
|
|
||||||
this->create_build_id();
|
|
||||||
+ this->create_package_metadata();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Create the dynamic sections which are needed before we read the
|
|
||||||
@@ -3536,6 +3540,52 @@ Layout::create_build_id()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
+// If --package-metadata was used, set up the package metadata note.
|
|
||||||
+// https://systemd.io/ELF_PACKAGE_METADATA/
|
|
||||||
+
|
|
||||||
+void
|
|
||||||
+Layout::create_package_metadata()
|
|
||||||
+{
|
|
||||||
+ if (!parameters->options().user_set_package_metadata())
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ const char* desc = parameters->options().package_metadata();
|
|
||||||
+ if (strcmp(desc, "") == 0)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+#ifdef HAVE_JANSSON
|
|
||||||
+ json_error_t json_error;
|
|
||||||
+ json_t *json = json_loads(desc, 0, &json_error);
|
|
||||||
+ if (json)
|
|
||||||
+ json_decref(json);
|
|
||||||
+ else
|
|
||||||
+ {
|
|
||||||
+ gold_fatal(_("error: --package-metadata=%s does not contain valid "
|
|
||||||
+ "JSON: %s\n"),
|
|
||||||
+ desc, json_error.text);
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ // Create the note.
|
|
||||||
+ size_t trailing_padding;
|
|
||||||
+ // Ensure the trailing NULL byte is always included, as per specification.
|
|
||||||
+ size_t descsz = strlen(desc) + 1;
|
|
||||||
+ Output_section* os = this->create_note("FDO", elfcpp::FDO_PACKAGING_METADATA,
|
|
||||||
+ ".note.package", descsz, true,
|
|
||||||
+ &trailing_padding);
|
|
||||||
+ if (os == NULL)
|
|
||||||
+ return;
|
|
||||||
+
|
|
||||||
+ Output_section_data* posd = new Output_data_const(desc, descsz, 4);
|
|
||||||
+ os->add_output_section_data(posd);
|
|
||||||
+
|
|
||||||
+ if (trailing_padding != 0)
|
|
||||||
+ {
|
|
||||||
+ posd = new Output_data_zero_fill(trailing_padding, 0);
|
|
||||||
+ os->add_output_section_data(posd);
|
|
||||||
+ }
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
// If we have both .stabXX and .stabXXstr sections, then the sh_link
|
|
||||||
// field of the former should point to the latter. I'm not sure who
|
|
||||||
// started this, but the GNU linker does it, and some tools depend
|
|
||||||
diff -rup binutils.orig/gold/layout.h binutils-2.38/gold/layout.h
|
|
||||||
--- binutils.orig/gold/layout.h 2022-08-04 11:11:01.788495165 +0100
|
|
||||||
+++ binutils-2.38/gold/layout.h 2022-08-04 11:12:26.125013949 +0100
|
|
||||||
@@ -1107,6 +1107,10 @@ class Layout
|
|
||||||
void
|
|
||||||
create_build_id();
|
|
||||||
|
|
||||||
+ // Create a package metadata note if needed.
|
|
||||||
+ void
|
|
||||||
+ create_package_metadata();
|
|
||||||
+
|
|
||||||
// Link .stab and .stabstr sections.
|
|
||||||
void
|
|
||||||
link_stabs_sections();
|
|
||||||
@@ -1453,6 +1457,8 @@ class Layout
|
|
||||||
Gdb_index* gdb_index_data_;
|
|
||||||
// The space for the build ID checksum if there is one.
|
|
||||||
Output_section_data* build_id_note_;
|
|
||||||
+ // The space for the package metadata JSON if there is one.
|
|
||||||
+ Output_section_data* package_metadata_note_;
|
|
||||||
// The output section containing dwarf abbreviations
|
|
||||||
Output_reduced_debug_abbrev_section* debug_abbrev_;
|
|
||||||
// The output section containing the dwarf debug info tree
|
|
||||||
diff -rup binutils.orig/gold/options.h binutils-2.38/gold/options.h
|
|
||||||
--- binutils.orig/gold/options.h 2022-08-04 11:11:01.785495182 +0100
|
|
||||||
+++ binutils-2.38/gold/options.h 2022-08-04 11:12:26.125013949 +0100
|
|
||||||
@@ -1102,6 +1102,10 @@ class General_options
|
|
||||||
DEFINE_bool(p, options::ONE_DASH, 'p', false,
|
|
||||||
N_("Ignored for ARM compatibility"), NULL);
|
|
||||||
|
|
||||||
+ DEFINE_optional_string(package_metadata, options::TWO_DASHES, '\0', NULL,
|
|
||||||
+ N_("Generate package metadata note"),
|
|
||||||
+ N_("[=JSON]"));
|
|
||||||
+
|
|
||||||
DEFINE_bool(pie, options::ONE_DASH, '\0', false,
|
|
||||||
N_("Create a position independent executable"),
|
|
||||||
N_("Do not create a position independent executable"));
|
|
||||||
diff -rup binutils.orig/elfcpp/elfcpp.h binutils-2.38/elfcpp/elfcpp.h
|
|
||||||
--- binutils.orig/elfcpp/elfcpp.h 2022-08-04 11:11:00.940500003 +0100
|
|
||||||
+++ binutils-2.38/elfcpp/elfcpp.h 2022-08-04 11:12:26.124013955 +0100
|
|
||||||
@@ -999,7 +999,9 @@ enum
|
|
||||||
// string.
|
|
||||||
NT_GNU_GOLD_VERSION = 4,
|
|
||||||
// Program property note, as described in "Linux Extensions to the gABI".
|
|
||||||
- NT_GNU_PROPERTY_TYPE_0 = 5
|
|
||||||
+ NT_GNU_PROPERTY_TYPE_0 = 5,
|
|
||||||
+ // FDO .note.package notes as defined on https://systemd.io/ELF_PACKAGE_METADATA/
|
|
||||||
+ FDO_PACKAGING_METADATA = 0xcafe1a7e
|
|
||||||
};
|
|
||||||
|
|
||||||
// The OS values which may appear in word 0 of a NT_GNU_ABI_TAG note.
|
|
||||||
|
|
@ -1,29 +0,0 @@
|
||||||
--- binutils.orig/binutils/readelf.c 2022-10-03 13:20:42.707527855 +0100
|
|
||||||
+++ binutils-2.39/binutils/readelf.c 2022-10-03 13:21:25.785436781 +0100
|
|
||||||
@@ -6357,6 +6357,13 @@ get_32bit_section_headers (Filedata * fi
|
|
||||||
/* PR binutils/17531: Cope with unexpected section header sizes. */
|
|
||||||
if (size == 0 || num == 0)
|
|
||||||
return false;
|
|
||||||
+
|
|
||||||
+ /* The section header cannot be at the start of the file - that is
|
|
||||||
+ where the ELF file header is located. A file with absolutely no
|
|
||||||
+ sections in it will use a shoff of 0. */
|
|
||||||
+ if (filedata->file_header.e_shoff == 0)
|
|
||||||
+ return false;
|
|
||||||
+
|
|
||||||
if (size < sizeof * shdrs)
|
|
||||||
{
|
|
||||||
if (! probe)
|
|
||||||
@@ -6421,6 +6428,12 @@ get_64bit_section_headers (Filedata * fi
|
|
||||||
if (size == 0 || num == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
+ /* The section header cannot be at the start of the file - that is
|
|
||||||
+ where the ELF file header is located. A file with absolutely no
|
|
||||||
+ sections in it will use a shoff of 0. */
|
|
||||||
+ if (filedata->file_header.e_shoff == 0)
|
|
||||||
+ return false;
|
|
||||||
+
|
|
||||||
if (size < sizeof * shdrs)
|
|
||||||
{
|
|
||||||
if (! probe)
|
|
||||||
|
|
@ -1,35 +0,0 @@
|
||||||
--- binutils.orig/binutils/readelf.c 2020-07-24 15:08:30.317597020 +0100
|
|
||||||
+++ binutils-2.35/binutils/readelf.c 2020-07-24 15:09:39.029155552 +0100
|
|
||||||
@@ -12069,11 +12069,13 @@ print_dynamic_symbol (Filedata *filedata
|
|
||||||
unsigned int vis = ELF_ST_VISIBILITY (psym->st_other);
|
|
||||||
|
|
||||||
printf (" %-7s", get_symbol_visibility (vis));
|
|
||||||
+#if 0
|
|
||||||
/* Check to see if any other bits in the st_other field are set.
|
|
||||||
Note - displaying this information disrupts the layout of the
|
|
||||||
table being generated, but for the moment this case is very rare. */
|
|
||||||
if (psym->st_other ^ vis)
|
|
||||||
printf (" [%s] ", get_symbol_other (filedata, psym->st_other ^ vis));
|
|
||||||
+#endif
|
|
||||||
}
|
|
||||||
printf (" %4s ", get_symbol_index_type (filedata, psym->st_shndx));
|
|
||||||
|
|
||||||
@@ -12112,7 +12114,17 @@ print_dynamic_symbol (Filedata *filedata
|
|
||||||
version_string);
|
|
||||||
}
|
|
||||||
|
|
||||||
- putchar ('\n');
|
|
||||||
+#if 1
|
|
||||||
+ {
|
|
||||||
+ unsigned int vis = ELF_ST_VISIBILITY (psym->st_other);
|
|
||||||
+
|
|
||||||
+ /* Check to see if any other bits in the st_other field are set. */
|
|
||||||
+ if (psym->st_other ^ vis)
|
|
||||||
+ printf (" \t[%s]", get_symbol_other (filedata, psym->st_other ^ vis));
|
|
||||||
+ }
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ putchar ('\n');
|
|
||||||
|
|
||||||
if (ELF_ST_BIND (psym->st_info) == STB_LOCAL
|
|
||||||
&& section != NULL
|
|
||||||
33
binutils-remove-ld-protected-func-2-test.patch
Normal file
33
binutils-remove-ld-protected-func-2-test.patch
Normal file
|
|
@ -0,0 +1,33 @@
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp binutils-with-gold-2.45.50-96b8a8a633a/ld/testsuite/ld-x86-64/x86-64.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-x86-64/x86-64.exp 2025-11-20 12:02:23.738336155 +0000
|
||||||
|
+++ binutils-with-gold-2.45.50-96b8a8a633a/ld/testsuite/ld-x86-64/x86-64.exp 2025-11-20 12:03:17.894485264 +0000
|
||||||
|
@@ -1413,14 +1413,6 @@ if { [isnative] && [check_compiler_avail
|
||||||
|
"libprotected-func-2b.so" \
|
||||||
|
] \
|
||||||
|
[list \
|
||||||
|
- "Build protected-func-2 without PIE" \
|
||||||
|
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2b.so" \
|
||||||
|
- "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||||
|
- { protected-func-1b.c } \
|
||||||
|
- {} \
|
||||||
|
- "protected-func-2" \
|
||||||
|
- ] \
|
||||||
|
- [list \
|
||||||
|
"Build libprotected-func-2c.so" \
|
||||||
|
"-shared" \
|
||||||
|
"-fPIC -Wa,-mx86-used-note=yes" \
|
||||||
|
@@ -1429,14 +1421,6 @@ if { [isnative] && [check_compiler_avail
|
||||||
|
"libprotected-func-2c.so" \
|
||||||
|
] \
|
||||||
|
[list \
|
||||||
|
- "Build protected-func-2a without PIE" \
|
||||||
|
- "$NOPIE_LDFLAGS -Wl,--no-as-needed tmpdir/libprotected-func-2c.so" \
|
||||||
|
- "$DIRECT_EXTERN_ACCESS_CFLAGS $NOPIE_CFLAGS -Wa,-mx86-used-note=yes" \
|
||||||
|
- { protected-func-1b.c } \
|
||||||
|
- {} \
|
||||||
|
- "protected-func-2a" \
|
||||||
|
- ] \
|
||||||
|
- [list \
|
||||||
|
"Build libprotected-data-1a.so" \
|
||||||
|
"-shared -z noindirect-extern-access" \
|
||||||
|
"-fPIC -Wa,-mx86-used-note=yes" \
|
||||||
|
|
@ -123,82 +123,6 @@ diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr20830b-now.d binutils-2.29.1/ld
|
||||||
0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144
|
0+18 0000000000000010 0000001c FDE cie=00000000 pc=0000000000000138..0000000000000144
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
DW_CFA_nop
|
DW_CFA_nop
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038a.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038a.d 2017-11-15 13:32:39.408064384 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a.d 2017-11-15 15:19:48.097433680 +0000
|
|
||||||
@@ -19,7 +19,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038a-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a-now.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038a-now.d 2017-11-15 13:32:39.401064469 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038a-now.d 2017-11-15 15:10:56.077760324 +0000
|
|
||||||
@@ -20,7 +20,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001c8..00000000000001d4
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038b.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038b.d 2017-11-15 13:32:39.405064420 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b.d 2017-11-15 15:10:42.828916844 +0000
|
|
||||||
@@ -19,6 +19,7 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
+#pass
|
|
||||||
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038b-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b-now.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038b-now.d 2017-11-15 13:32:39.416064288 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038b-now.d 2017-11-15 15:11:11.550577531 +0000
|
|
||||||
@@ -20,7 +20,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=00000000000001d8..00000000000001dd
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038c.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038c.d 2017-11-15 13:32:39.411064348 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c.d 2017-11-15 15:09:52.664509478 +0000
|
|
||||||
@@ -19,7 +19,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/pr21038c-now.d binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c-now.d
|
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/pr21038c-now.d 2017-11-15 13:32:39.413064324 +0000
|
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/pr21038c-now.d 2017-11-15 15:11:22.975442559 +0000
|
|
||||||
@@ -20,7 +20,8 @@ Contents of the .eh_frame section:
|
|
||||||
DW_CFA_offset: r16 \(rip\) at cfa-8
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
-
|
|
||||||
+#pass
|
|
||||||
+
|
|
||||||
0+18 0000000000000014 0000001c FDE cie=00000000 pc=0000000000000220..0000000000000231
|
|
||||||
DW_CFA_nop
|
|
||||||
DW_CFA_nop
|
|
||||||
diff -rup binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd
|
diff -rup binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd
|
||||||
--- binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 13:32:39.417064276 +0000
|
--- binutils.orig/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 13:32:39.417064276 +0000
|
||||||
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 15:05:02.950932110 +0000
|
+++ binutils-2.29.1/ld/testsuite/ld-x86-64/tlspic2.rd 2017-11-15 15:05:02.950932110 +0000
|
||||||
|
|
|
||||||
269
binutils-riscv-testsuite-fixes.patch
Normal file
269
binutils-riscv-testsuite-fixes.patch
Normal file
|
|
@ -0,0 +1,269 @@
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/attr-phdr.d binutils-2.40/ld/testsuite/ld-riscv-elf/attr-phdr.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-riscv-elf/attr-phdr.d 2023-02-16 10:11:38.656875289 +0000
|
||||||
|
+++ binutils-2.40/ld/testsuite/ld-riscv-elf/attr-phdr.d 2023-02-16 10:49:26.786573665 +0000
|
||||||
|
@@ -12,8 +12,8 @@ Program Headers:
|
||||||
|
Type Offset VirtAddr PhysAddr FileSiz MemSiz Flg Align
|
||||||
|
RISCV_ATTRIBUT .*
|
||||||
|
LOAD .*
|
||||||
|
-
|
||||||
|
+#...
|
||||||
|
Section to Segment mapping:
|
||||||
|
Segment Sections...
|
||||||
|
00 .riscv.attributes
|
||||||
|
- 01 .text
|
||||||
|
+#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d binutils-2.40/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2023-02-16 10:11:38.659875285 +0000
|
||||||
|
+++ binutils-2.40/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2023-02-16 10:42:54.803431287 +0000
|
||||||
|
@@ -8,7 +8,7 @@
|
||||||
|
Disassembly of section \.text:
|
||||||
|
|
||||||
|
0+[0-9a-f]+ <_start>:
|
||||||
|
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,[0-9]+
|
||||||
|
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,\-[0-9]+
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d binutils-2.40/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2023-02-16 10:11:38.659875285 +0000
|
||||||
|
+++ binutils-2.40/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2023-02-16 10:43:49.540306593 +0000
|
||||||
|
@@ -11,5 +11,5 @@ Disassembly of section .text:
|
||||||
|
[0-9a-f]+ <_start>:
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1.*
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,gp.*<data_a>
|
||||||
|
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1.*<data_b>
|
||||||
|
+.*:[ ]+[0-9a-f]+[ ]+mv[ ]+a1,a1
|
||||||
|
#pass
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d binutils-2.40/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d 2023-02-16 10:11:38.659875285 +0000
|
||||||
|
+++ binutils-2.40/ld/testsuite/ld-riscv-elf/pcrel-lo-addend-2a.d 2023-02-16 10:46:55.570899994 +0000
|
||||||
|
@@ -2,4 +2,5 @@
|
||||||
|
#source: pcrel-lo-addend-2a.s
|
||||||
|
#as: -march=rv32ic
|
||||||
|
#ld: -m[riscv_choose_ilp32_emul] --no-relax
|
||||||
|
+#skip: *-*-*
|
||||||
|
#error: .*dangerous relocation: %pcrel_lo overflow with an addend, the value of %pcrel_hi is 0x1000 without any addend, but may be 0x2000 after adding the %pcrel_lo addend
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-elf/dwarf.exp binutils-2.40/ld/testsuite/ld-elf/dwarf.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/dwarf.exp 2023-02-16 10:11:38.515875516 +0000
|
||||||
|
+++ binutils-2.40/ld/testsuite/ld-elf/dwarf.exp 2023-02-16 11:08:52.209377332 +0000
|
||||||
|
@@ -29,6 +29,10 @@ if ![is_elf_format] {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
+if { [istarget riscv*-*-*] } then {
|
||||||
|
+ return
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
# Skip targets where -shared is not supported
|
||||||
|
|
||||||
|
if ![check_shared_lib_support] {
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-elf/tls.exp binutils-2.40/ld/testsuite/ld-elf/tls.exp
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/tls.exp 2023-02-16 10:11:38.540875476 +0000
|
||||||
|
+++ binutils-2.40/ld/testsuite/ld-elf/tls.exp 2023-02-16 11:08:56.944369374 +0000
|
||||||
|
@@ -28,6 +28,10 @@ if { !([istarget *-*-linux*]
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
+if { [istarget riscv*-*-*] } then {
|
||||||
|
+ return
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
# Check to see if the C compiler works.
|
||||||
|
if { ![check_compiler_available] } {
|
||||||
|
return
|
||||||
|
--- binutils.orig/binutils/testsuite/binutils-all/objcopy.exp 2023-08-24 07:48:30.429195480 +0100
|
||||||
|
+++ binutils-2.41/binutils/testsuite/binutils-all/objcopy.exp 2023-08-24 07:57:05.535302711 +0100
|
||||||
|
@@ -1409,6 +1409,8 @@ proc objcopy_test_without_global_symbol
|
||||||
|
# The AArch64 and ARM targets preserve mapping symbols
|
||||||
|
# in object files, so they will fail this test.
|
||||||
|
setup_xfail aarch64*-*-* arm*-*-*
|
||||||
|
+# The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
|
||||||
|
+setup_xfail riscv*-*-*
|
||||||
|
|
||||||
|
objcopy_test_without_global_symbol
|
||||||
|
|
||||||
|
--- binutils.orig/ld/testsuite/ld-plugin/plugin.exp 2023-08-24 07:48:31.808196076 +0100
|
||||||
|
+++ binutils-2.41/ld/testsuite/ld-plugin/plugin.exp 2023-08-24 07:59:30.285716568 +0100
|
||||||
|
@@ -132,6 +132,10 @@ if [is_pecoff_format] {
|
||||||
|
append libs " --image-base=0x10000000"
|
||||||
|
}
|
||||||
|
|
||||||
|
+if { [istarget riscv*-*-*] } then {
|
||||||
|
+ return
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
set plugin_tests [list \
|
||||||
|
[list "load plugin" "-plugin $plugin_path \
|
||||||
|
$testobjfiles $libs" "" "" "" {{ld plugin-1.d}} "main.x" ] \
|
||||||
|
--- binutils.orig/binutils/testsuite/binutils-all/compress.exp 2023-12-11 10:09:16.923374463 +0000
|
||||||
|
+++ binutils-2.41/binutils/testsuite/binutils-all/compress.exp 2023-12-12 09:00:15.150036675 +0000
|
||||||
|
@@ -818,6 +818,10 @@ proc test_gnu_debuglink {} {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+if { [istarget riscv*-*-*] } then {
|
||||||
|
+ return
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
if {[is_elf_format]} then {
|
||||||
|
test_gnu_debuglink
|
||||||
|
}
|
||||||
|
--- binutils-2.41/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2023-07-03 00:00:00.000000000 +0100
|
||||||
|
+++ binutils.new/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2023-12-12 11:52:54.564057931 +0000
|
||||||
|
@@ -8,10 +8,10 @@
|
||||||
|
Disassembly of section \.text:
|
||||||
|
|
||||||
|
0+[0-9a-f]+ <_start>:
|
||||||
|
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,[0-9]+
|
||||||
|
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,\-[0-9]+
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1,0x[0-9a-f]+
|
||||||
|
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,[0-9]+ # [0-9a-f]+ <data_g>
|
||||||
|
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,\-[0-9]+ # [0-9a-f]+ <data_g>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+lui[ ]+a2,0x[0-9a-f]+
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,a2,[0-9]+ # [0-9a-f]+ <data_g>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a3,tp,0 # 0 <data_t>
|
||||||
|
--- binutils.orig/binutils/testsuite/binutils-all/objcopy.exp 2023-12-12 14:21:10.225342926 +0000
|
||||||
|
+++ binutils-2.41/binutils/testsuite/binutils-all/objcopy.exp 2023-12-12 14:22:12.453421499 +0000
|
||||||
|
@@ -1410,7 +1410,7 @@ proc objcopy_test_without_global_symbol
|
||||||
|
# in object files, so they will fail this test.
|
||||||
|
setup_xfail aarch64*-*-* arm*-*-*
|
||||||
|
# The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
|
||||||
|
-setup_xfail riscv*-*-*
|
||||||
|
+# setup_xfail riscv*-*-*
|
||||||
|
|
||||||
|
objcopy_test_without_global_symbol
|
||||||
|
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2024-10-03 15:21:47.926570551 +0100
|
||||||
|
+++ binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01-norelaxgp.d 2024-10-03 15:24:26.152502612 +0100
|
||||||
|
@@ -8,10 +8,10 @@
|
||||||
|
Disassembly of section \.text:
|
||||||
|
|
||||||
|
0+[0-9a-f]+ <_start>:
|
||||||
|
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,\-[0-9]+
|
||||||
|
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,.*
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1,0x[0-9a-f]+
|
||||||
|
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,\-[0-9]+ # [0-9a-f]+ <data_g>
|
||||||
|
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1,.*
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+lui[ ]+a2,0x[0-9a-f]+
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,a2,[0-9]+ # [0-9a-f]+ <data_g>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a3,tp,0 # 0 <data_t>
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2024-10-03 15:21:47.926570551 +0100
|
||||||
|
+++ binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-01.d 2024-10-03 15:23:54.512530979 +0100
|
||||||
|
@@ -8,7 +8,7 @@
|
||||||
|
Disassembly of section \.text:
|
||||||
|
|
||||||
|
0+[0-9a-f]+ <_start>:
|
||||||
|
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,\-[0-9]+
|
||||||
|
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,.*
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
|
||||||
|
diff -rup binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d
|
||||||
|
--- binutils.orig/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2024-10-03 15:21:47.926570551 +0100
|
||||||
|
+++ binutils-2.43.50-1f4aee70ed1/ld/testsuite/ld-riscv-elf/pcgp-relax-02.d 2024-10-03 15:25:01.687468496 +0100
|
||||||
|
@@ -11,5 +11,5 @@ Disassembly of section .text:
|
||||||
|
[0-9a-f]+ <_start>:
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1.*
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,gp.*<data_a>
|
||||||
|
-.*:[ ]+[0-9a-f]+[ ]+mv[ ]+a1,a1
|
||||||
|
+.*:[ ]+[0-9a-f]+[ ]+.*
|
||||||
|
#pass
|
||||||
|
--- binutils-with-gold-2.45.50-79b2b564fec.orig/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d 2025-09-09 15:52:30.684689609 +0100
|
||||||
|
+++ binutils-with-gold-2.45.50-79b2b564fec/ld/testsuite/ld-riscv-elf/zicfilp-unlabeled-plt.d 2025-09-09 15:53:12.837859447 +0100
|
||||||
|
@@ -30,6 +30,6 @@ Disassembly of section \.plt:
|
||||||
|
|
||||||
|
[0-9a-f]+ <bar@plt>:
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+lpad[ ]+0x0
|
||||||
|
-.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x1
|
||||||
|
+.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+t3,0x[0-9a-f]+
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+ld[ ]+t3,[0-9]+\(t3\) # [0-9a-f]+ <bar>
|
||||||
|
.*:[ ]+[0-9a-f]+[ ]+jalr[ ]+t1,t3
|
||||||
|
diff -rup binutils-with-gold-2.45.50-beab972c07d,orig/binutils/testsuite/binutils-all/objcopy.exp binutils-with-gold-2.45.50-beab972c07d/binutils/testsuite/binutils-all/objcopy.exp
|
||||||
|
--- binutils-with-gold-2.45.50-beab972c07d,orig/binutils/testsuite/binutils-all/objcopy.exp 2025-12-02 12:47:19.063123207 +0000
|
||||||
|
+++ binutils-with-gold-2.45.50-beab972c07d/binutils/testsuite/binutils-all/objcopy.exp 2025-12-04 12:39:26.079989597 +0000
|
||||||
|
@@ -602,14 +602,19 @@ proc strip_test { } {
|
||||||
|
set exec_output [binutils_run $STRIP "$STRIPFLAGS $objfile"]
|
||||||
|
set exec_output [prune_warnings $exec_output]
|
||||||
|
if ![string equal "" $exec_output] {
|
||||||
|
- fail $test
|
||||||
|
+ fail "$test (warnings in linker output)"
|
||||||
|
+ verbose $exec_output
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
set exec_output [binutils_run $NM "-a $NMFLAGS $objfile"]
|
||||||
|
set exec_output [prune_warnings $exec_output]
|
||||||
|
if ![string match "*: no symbols*" $exec_output] {
|
||||||
|
- fail $test
|
||||||
|
+
|
||||||
|
+ # The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
|
||||||
|
+ setup_xfail riscv*-*-*
|
||||||
|
+
|
||||||
|
+ fail "$test (symbols in nm output)"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -659,6 +664,9 @@ proc strip_test_with_saving_a_symbol { }
|
||||||
|
pass $test
|
||||||
|
}
|
||||||
|
|
||||||
|
+# The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
|
||||||
|
+setup_xfail riscv*-*-*
|
||||||
|
+
|
||||||
|
strip_test_with_saving_a_symbol
|
||||||
|
|
||||||
|
# Test stripping an archive.
|
||||||
|
@@ -1503,7 +1519,7 @@ proc objcopy_test_without_global_symbol
|
||||||
|
# in object files, so they will fail this test.
|
||||||
|
setup_xfail aarch64*-*-* arm*-*-*
|
||||||
|
# The RISC-V target compiles with annotation enabled and these symbols remain after stripping.
|
||||||
|
-# setup_xfail riscv*-*-*
|
||||||
|
+setup_xfail riscv*-*-*
|
||||||
|
|
||||||
|
objcopy_test_without_global_symbol
|
||||||
|
|
||||||
|
diff -rup binutils-with-gold-2.45.50-beab972c07d,orig/ld/testsuite/lib/ld-lib.exp binutils-with-gold-2.45.50-beab972c07d/ld/testsuite/lib/ld-lib.exp
|
||||||
|
--- binutils-with-gold-2.45.50-beab972c07d,orig/ld/testsuite/lib/ld-lib.exp 2025-12-02 12:47:19.201090894 +0000
|
||||||
|
+++ binutils-with-gold-2.45.50-beab972c07d/ld/testsuite/lib/ld-lib.exp 2025-12-03 09:30:07.184360005 +0000
|
||||||
|
@@ -1633,6 +1633,12 @@ proc compile_one_cc { src output additio
|
||||||
|
proc check_ctf_available { } {
|
||||||
|
global ctf_available_saved
|
||||||
|
|
||||||
|
+ # Skip CTF tests for the Risc-V target for now, as the
|
||||||
|
+ # tests have not been tweaked to support the riscv format.
|
||||||
|
+ if { [istarget "riscv*-*-linux*"] } {
|
||||||
|
+ return 0
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
if {![info exists ctf_available_saved]} {
|
||||||
|
set ctf_available_saved 0
|
||||||
|
|
||||||
|
--- fred/binutils/testsuite/lib/binutils-common.exp 2026-03-16 09:18:37.205413649 +0000
|
||||||
|
+++ binutils-with-gold-2.46.50-d712202846b/binutils/testsuite/lib/binutils-common.exp 2026-03-16 09:18:49.559358668 +0000
|
||||||
|
@@ -803,6 +803,9 @@ proc prune_warnings_extra { text } {
|
||||||
|
# Ignore warnings about linking objects with an old sframe format
|
||||||
|
regsub -all {(^|\n)([^\n]* unexpected SFrame format version [^\n]*\n[^\n]* SFrame section ignored\n?)+} $text {\1} text
|
||||||
|
|
||||||
|
+ # Skip warnings about the LTO plugin being needed.
|
||||||
|
+ regsub -all "(^|\n)(\[^\n\]*:\[^\n\]*plugin needed to handle lto object\[^\n\]*\n?)+" $text "\\1" text
|
||||||
|
+
|
||||||
|
return $text
|
||||||
|
}
|
||||||
|
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/shared.exp 2026-06-10 15:32:21.012274073 +0100
|
||||||
|
+++ binutils-with-gold-2.46.50-48997323b0f/ld/testsuite/ld-elf/shared.exp 2026-06-10 15:34:41.397899263 +0100
|
||||||
|
@@ -1859,6 +1859,10 @@ run_cc_link_tests [list \
|
||||||
|
"pr29655.so" \
|
||||||
|
] \
|
||||||
|
]
|
||||||
|
+
|
||||||
|
+# FIXME: Find out why the Risc-V fails this test.
|
||||||
|
+setup_xfail "riscv64-*-*"
|
||||||
|
+
|
||||||
|
# PR 29655 (cont.): Check that in PIC code linked as PDE taking the address
|
||||||
|
# of a function defined in a DSO results in the function address (from GOT)
|
||||||
|
# and not the "canonical PLT" address from the PDE.
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
--- binutils.orig/bfd/elf.c 2018-10-19 11:42:10.107277490 +0100
|
|
||||||
+++ binutils-2.31.1/bfd/elf.c 2018-10-19 11:44:33.607105801 +0100
|
|
||||||
@@ -830,7 +830,13 @@ setup_group (bfd *abfd, Elf_Internal_Shd
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
- if (elf_group_name (newsect) == NULL)
|
|
||||||
+ if (elf_group_name (newsect) == NULL
|
|
||||||
+ /* OS specific sections might be in a group (eg ARM's ARM_EXIDX section)
|
|
||||||
+ but they will not have been added to the group because they do not
|
|
||||||
+ have contents that the ELF code in the BFD library knows how to
|
|
||||||
+ process. This is OK though - we rely upon the target backends to
|
|
||||||
+ handle these sections for us. */
|
|
||||||
+ && hdr->sh_type < SHT_LOOS)
|
|
||||||
{
|
|
||||||
/* xgettext:c-format */
|
|
||||||
_bfd_error_handler (_("%pB: no group info for section '%pA'"),
|
|
||||||
@@ -936,7 +942,8 @@ _bfd_elf_setup_sections (bfd *abfd)
|
|
||||||
else if (idx->shdr->bfd_section)
|
|
||||||
elf_sec_group (idx->shdr->bfd_section) = shdr->bfd_section;
|
|
||||||
else if (idx->shdr->sh_type != SHT_RELA
|
|
||||||
- && idx->shdr->sh_type != SHT_REL)
|
|
||||||
+ && idx->shdr->sh_type != SHT_REL
|
|
||||||
+ && idx->shdr->sh_type < SHT_LOOS)
|
|
||||||
{
|
|
||||||
/* There are some unknown sections in the group. */
|
|
||||||
_bfd_error_handler
|
|
||||||
13
binutils-suppress-ld-align-tests.patch
Normal file
13
binutils-suppress-ld-align-tests.patch
Normal file
|
|
@ -0,0 +1,13 @@
|
||||||
|
--- binutils.orig/ld/testsuite/ld-elf/linux-x86.exp 2024-01-24 11:52:35.288014542 +0000
|
||||||
|
+++ binutils-2.41/ld/testsuite/ld-elf/linux-x86.exp 2024-01-24 17:31:39.356167357 +0000
|
||||||
|
@@ -225,6 +225,10 @@ if { [check_ifunc_attribute_available] }
|
||||||
|
# Old gcc silently ignores __attribute__ ((aligned())) with too big alignment.
|
||||||
|
proc compiler_honours_aligned { } {
|
||||||
|
global CC_FOR_TARGET READELF srcdir subdir
|
||||||
|
+
|
||||||
|
+ # Temporary fix for CentOS-10 kernel issue. (RHEL-22466)
|
||||||
|
+ return 0
|
||||||
|
+
|
||||||
|
ld_compile $CC_FOR_TARGET $srcdir/$subdir/p_align-1.c tmpdir/p_align-1.o
|
||||||
|
set output [run_host_cmd "$READELF" "-SW tmpdir/p_align-1.o"]
|
||||||
|
if { [regexp { [.]data *PROGBITS .* 8388608[\n]} $output] } {
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,36 +0,0 @@
|
||||||
diff -rup binutils.orig/ld/ld.1 binutils-2.38/ld/ld.1
|
|
||||||
--- binutils.orig/ld/ld.1 2022-05-27 10:56:44.937044892 +0100
|
|
||||||
+++ binutils-2.38/ld/ld.1 2022-05-27 11:10:50.311802310 +0100
|
|
||||||
@@ -2595,7 +2595,7 @@ systems may not understand them. If you
|
|
||||||
\&\fB\-\-enable\-new\-dtags\fR, the new dynamic tags will be created as needed
|
|
||||||
and older dynamic tags will be omitted.
|
|
||||||
If you specify \fB\-\-disable\-new\-dtags\fR, no new dynamic tags will be
|
|
||||||
-created. By default, the new dynamic tags are not created. Note that
|
|
||||||
+created. By default, the new dynamic tags are created. Note that
|
|
||||||
those options are only available for \s-1ELF\s0 systems.
|
|
||||||
.IP "\fB\-\-hash\-size=\fR\fInumber\fR" 4
|
|
||||||
.IX Item "--hash-size=number"
|
|
||||||
diff -rup binutils.orig/ld/ld.info binutils-2.38/ld/ld.info
|
|
||||||
--- binutils.orig/ld/ld.info 2022-05-27 11:01:12.286346357 +0100
|
|
||||||
+++ binutils-2.38/ld/ld.info 2022-05-27 11:11:24.585709176 +0100
|
|
||||||
@@ -2236,7 +2236,7 @@ GNU linker:
|
|
||||||
'--enable-new-dtags', the new dynamic tags will be created as
|
|
||||||
needed and older dynamic tags will be omitted. If you specify
|
|
||||||
'--disable-new-dtags', no new dynamic tags will be created. By
|
|
||||||
- default, the new dynamic tags are not created. Note that those
|
|
||||||
+ default, the new dynamic tags are created. Note that those
|
|
||||||
options are only available for ELF systems.
|
|
||||||
|
|
||||||
'--hash-size=NUMBER'
|
|
||||||
diff -rup binutils.orig/ld/ld.texi binutils-2.38/ld/ld.texi
|
|
||||||
--- binutils.orig/ld/ld.texi 2022-05-27 11:01:24.081314960 +0100
|
|
||||||
+++ binutils-2.38/ld/ld.texi 2022-05-27 11:10:05.608923798 +0100
|
|
||||||
@@ -2796,7 +2796,7 @@ systems may not understand them. If you
|
|
||||||
@option{--enable-new-dtags}, the new dynamic tags will be created as needed
|
|
||||||
and older dynamic tags will be omitted.
|
|
||||||
If you specify @option{--disable-new-dtags}, no new dynamic tags will be
|
|
||||||
-created. By default, the new dynamic tags are not created. Note that
|
|
||||||
+created. By default, the new dynamic tags are created. Note that
|
|
||||||
those options are only available for ELF systems.
|
|
||||||
|
|
||||||
@kindex --hash-size=@var{number}
|
|
||||||
1368
binutils.spec
1368
binutils.spec
File diff suppressed because it is too large
Load diff
|
|
@ -11,5 +11,5 @@ product_versions:
|
||||||
- rhel-9
|
- rhel-9
|
||||||
decision_context: osci_compose_gate
|
decision_context: osci_compose_gate
|
||||||
rules:
|
rules:
|
||||||
- !PassingTestCaseRule {test_case_name: osci.brew-build.tier0.functional}
|
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.gate-build-fast-lane.functional}
|
||||||
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.tier1.functional}
|
- !PassingTestCaseRule {test_case_name: baseos-ci.brew-build.gate-build-slow-lane.functional}
|
||||||
|
|
|
||||||
26
plans/build-gating.fmf
Normal file
26
plans/build-gating.fmf
Normal file
|
|
@ -0,0 +1,26 @@
|
||||||
|
#
|
||||||
|
# Build/PR gating tests for binutils
|
||||||
|
#
|
||||||
|
|
||||||
|
/common:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.com/redhat/centos-stream/tests/binutils.git
|
||||||
|
ref: main
|
||||||
|
name: /plans/build-gating/common
|
||||||
|
|
||||||
|
/kernel-rebuild:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.com/redhat/centos-stream/tests/binutils.git
|
||||||
|
ref: main
|
||||||
|
name: /plans/build-gating/kernel-rebuild
|
||||||
|
|
||||||
|
adjust+:
|
||||||
|
- because: "Plan to be ran when executed locally, or executed by CI system to gate a build or PR."
|
||||||
|
# `commit` is used by Fedora CI, CentOS Stream CI, `build` by BaseOS CI
|
||||||
|
when: >-
|
||||||
|
trigger is defined
|
||||||
|
and trigger != commit
|
||||||
|
and trigger != build
|
||||||
|
enabled: false
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
summary: CI Gating Plan
|
|
||||||
discover:
|
|
||||||
how: fmf
|
|
||||||
execute:
|
|
||||||
how: tmt
|
|
||||||
18
plans/regression.fmf
Normal file
18
plans/regression.fmf
Normal file
|
|
@ -0,0 +1,18 @@
|
||||||
|
#
|
||||||
|
# Build/PR gating tests for binutils
|
||||||
|
#
|
||||||
|
|
||||||
|
/common:
|
||||||
|
plan:
|
||||||
|
import:
|
||||||
|
url: https://gitlab.com/redhat/centos-stream/tests/binutils.git
|
||||||
|
ref: main
|
||||||
|
name: /plans/regression
|
||||||
|
|
||||||
|
adjust+:
|
||||||
|
- because: "Plan to be ran when executed locally, or executed by CI system after updating an erratum/bodhi update."
|
||||||
|
# `build` is used by Bodhi
|
||||||
|
when: >-
|
||||||
|
trigger is defined
|
||||||
|
and trigger != build
|
||||||
|
enabled: false
|
||||||
2
sources
2
sources
|
|
@ -1,2 +1,2 @@
|
||||||
SHA512 (binutils-2.39.tar.xz) = 68e038f339a8c21faa19a57bbc447a51c817f47c2e06d740847c6e9cc3396c025d35d5369fa8c3f8b70414757c89f0e577939ddc0d70f283182504920f53b0a3
|
SHA512 (binutils-with-gold-2.47.50-48c933a69a8.tar.xz) = c4300e4881227c431c0bbbb949a5ee5bc113701f993766418b152df7d46d9df378ebace9efffcb6e1f0b7e72ad716bbcccf5b6aa55851dc28216555b242d18a0
|
||||||
SHA512 (binutils-2.19.50.0.1-output-format.sed) = 2f8686b0c8af13c98cda056824c2820416f6e2d003f70b78ccf5314525b9ee3684d421dfa83e638a2d42d06ea4d4bdaf5226b64d6ec26f7ff59c44ffb2a23dd2
|
SHA512 (binutils-2.19.50.0.1-output-format.sed) = 2f8686b0c8af13c98cda056824c2820416f6e2d003f70b78ccf5314525b9ee3684d421dfa83e638a2d42d06ea4d4bdaf5226b64d6ec26f7ff59c44ffb2a23dd2
|
||||||
|
|
|
||||||
|
|
@ -1,67 +0,0 @@
|
||||||
|
|
||||||
# Note - this is an rpm spec file, but it has been renamed in order to avoid
|
|
||||||
# conflict with the real binutils.spec file.
|
|
||||||
#
|
|
||||||
# Its only use is to build a set of cross-binutils rpms by putting it into
|
|
||||||
# the SPECS directory of an rpmbuild tree, installing the binutils source
|
|
||||||
# rpm into the SOURCES directory and then running:
|
|
||||||
#
|
|
||||||
# rpmbuild -bb spec.binutils.cross
|
|
||||||
|
|
||||||
Summary: A meta collection of GNU binutils executables for cross builds
|
|
||||||
Name: cross-binutils
|
|
||||||
License: GPLv3+
|
|
||||||
URL: https://sourceware.org/binutils
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
#
|
|
||||||
# Configurable settings - adjust to match your needs:
|
|
||||||
#
|
|
||||||
|
|
||||||
Version: 2.30
|
|
||||||
Release: 89.el8
|
|
||||||
|
|
||||||
# The list of cross architectures to build.
|
|
||||||
# Note: this list assumes that we are building on an x86_64-linux-gnu host.
|
|
||||||
|
|
||||||
%define arch_list aarch64-linux-gnu ppc64le-linux-gnu s390x-linux-gnu
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
%define binutils_source_rpm binutils-%{version}-%{release}.src.rpm
|
|
||||||
|
|
||||||
Source: %{binutils_source_rpm}
|
|
||||||
|
|
||||||
# Provides: bundled(libiberty)
|
|
||||||
|
|
||||||
BuildRequires: autoconf automake
|
|
||||||
BuildRequires: perl, sed, coreutils
|
|
||||||
BuildRequires: gcc, bison
|
|
||||||
BuildRequires: gettext, flex, zlib-devel
|
|
||||||
BuildRequires: findutils, texinfo
|
|
||||||
BuildRequires: dejagnu, zlib-static, glibc-static, sharutils, bc
|
|
||||||
# BuildRequires: elfutils-debuginfod-client-devel
|
|
||||||
BuildRequires: rpm-build
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
%description
|
|
||||||
Provides a collection of cross built binutils for the targets
|
|
||||||
supported by RHEL (aarch64, ppc64le, s390x).
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
|
|
||||||
%build
|
|
||||||
|
|
||||||
# Install the binutils sources.
|
|
||||||
rpm -ivh %{_sourcedir}/%{binutils_source_rpm}
|
|
||||||
|
|
||||||
# Build each set of cross binutils individually.
|
|
||||||
for f in %{arch_list}; do
|
|
||||||
rpmbuild -bb --define "binutils_target $f" %{_specdir}/binutils.spec --without testsuite --without gold
|
|
||||||
done
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------------
|
|
||||||
%changelog
|
|
||||||
* Wed Nov 11 2020 Nick Clifton <nickc@redhat.com> - 2.35.1-14
|
|
||||||
- First release of cross binutils rpm.
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
The test's Makefiles are not used in Fedora CI infrastructure. But are kept here
|
|
||||||
for backward compatibility with traditional beakerlib test harness in RHEL.
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# Testcases for this bugzilla were provided by Jakub Jelinek <jakub@redhat.com>
|
|
||||||
# I've only wrapped them to RHTS
|
|
||||||
|
|
||||||
TOPLEVEL_NAMESPACE=/tools
|
|
||||||
PACKAGE_NAME=binutils
|
|
||||||
RELATIVE_PATH=bugzillas/241252
|
|
||||||
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
export TEST=$(TOPLEVEL_NAMESPACE)/$(PACKAGE_NAME)/$(RELATIVE_PATH)
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
FILES=$(METADATA) \
|
|
||||||
runtest.sh \
|
|
||||||
Makefile \
|
|
||||||
x.i \
|
|
||||||
y.i
|
|
||||||
|
|
||||||
run: $(FILES) #build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
chmod a+x ./runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@touch $(METADATA)
|
|
||||||
@echo "Owner: Michal Nowak <mnowak@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Description: Regression test for bz241252." >> $(METADATA)
|
|
||||||
@echo "TestTime: 3m" >> $(METADATA)
|
|
||||||
@echo "RunFor: $(PACKAGE_NAME)" >> $(METADATA)
|
|
||||||
@echo "Requires: $(PACKAGE_NAME) gcc" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "Releases: -RHEL4" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,12 +0,0 @@
|
||||||
summary: Regression test for bz241252.
|
|
||||||
contact: Michal Nowak <mnowak@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
- gcc
|
|
||||||
duration: 3m
|
|
||||||
extra-summary: /tools/binutils/bugzillas/241252
|
|
||||||
extra-task: /tools/binutils/bugzillas/241252
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
# Include rhts environment
|
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
||||||
|
|
||||||
PACKAGE="binutils"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup Setup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
rlShowRunningKernel
|
|
||||||
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
cp x.i y.i $TmpDir
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
|
|
||||||
rlRun "gcc -c -O2 -fpic -o x.o x.i -g" 0 "Compile test case 'x'"
|
|
||||||
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'"
|
|
||||||
|
|
||||||
# Note: debug_ranges replaced by debug_rnglist (since DWARF 5 in Fedora 34)
|
|
||||||
rlLogInfo 'x.o + y.o:'
|
|
||||||
rlLogInfo "$( readelf -WS [xy].o | grep debug_rnglist | grep PROGBITS )"
|
|
||||||
rlLogInfo 'x:'
|
|
||||||
rlLogInfo "$( readelf -WS x | grep debug_rnglist )"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest Testing
|
|
||||||
if [ $( readelf -WS [xy].o | grep debug_rnglist | grep PROGBITS | wc -l ) -eq 2 ] \
|
|
||||||
&& [ $( readelf -WS x | grep debug_rnglist | wc -l ) -eq 1 ]; then
|
|
||||||
rlPass "Debug ranges sections were merged"
|
|
||||||
else
|
|
||||||
rlFail "Debug ranges sections were not merged"
|
|
||||||
fi
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup Cleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir $rlRun_LOG" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,62 +0,0 @@
|
||||||
extern void __assert_fail (const char *, const char *, unsigned int, const char *)
|
|
||||||
__attribute__ ((__nothrow__, __noreturn__));
|
|
||||||
|
|
||||||
struct gst;
|
|
||||||
struct gs;
|
|
||||||
|
|
||||||
extern void bar (void *) __attribute__ ((__nothrow__));
|
|
||||||
|
|
||||||
typedef int (*gf) (struct gst *, struct gs *,
|
|
||||||
const unsigned char **, const unsigned char *,
|
|
||||||
unsigned char **, unsigned long *, int, int);
|
|
||||||
|
|
||||||
struct gst
|
|
||||||
{
|
|
||||||
gf fct;
|
|
||||||
int min_needed_from;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct gs
|
|
||||||
{
|
|
||||||
unsigned char *outbuf;
|
|
||||||
unsigned char *outbufend;
|
|
||||||
int flags;
|
|
||||||
int invocation_counter;
|
|
||||||
int internal_use;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct gi
|
|
||||||
{
|
|
||||||
unsigned long nsteps;
|
|
||||||
struct gst *steps;
|
|
||||||
struct gs data [10];
|
|
||||||
} *gt;
|
|
||||||
|
|
||||||
int
|
|
||||||
foo (gt cd, const unsigned char **inbuf,
|
|
||||||
const unsigned char *inbufend, unsigned char **outbuf,
|
|
||||||
unsigned char *outbufend, unsigned long *irreversible)
|
|
||||||
{
|
|
||||||
unsigned long last_step;
|
|
||||||
int result;
|
|
||||||
last_step = cd->nsteps - 1;
|
|
||||||
*irreversible = 0;
|
|
||||||
cd->data[last_step].outbuf = outbuf != ((void *)0) ? *outbuf : ((void *)0);
|
|
||||||
cd->data[last_step].outbufend = outbufend;
|
|
||||||
gf fct = cd->steps->fct;
|
|
||||||
if (inbuf == ((void *)0) || *inbuf == ((void *)0))
|
|
||||||
result = (bar ((void *) (fct)), (*(fct)) (cd->steps, cd->data, ((void *)0), ((void *)0), ((void *)0), irreversible, cd->data[last_step].outbuf == ((void *)0) ? 2 : 1, 0));
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const unsigned char *last_start;
|
|
||||||
((outbuf != ((void *)0) && *outbuf != ((void *)0)) ? (void) (0) : __assert_fail ("outbuf != ((void *)0) && *outbuf != ((void *)0)", "gconv.c", 67, "foo"));
|
|
||||||
do
|
|
||||||
{
|
|
||||||
last_start = *inbuf;
|
|
||||||
result = (bar ((void *) (fct)), (*(fct)) (cd->steps, cd->data, inbuf, inbufend, ((void *)0), irreversible, 0, 0));
|
|
||||||
}
|
|
||||||
while (result == 4 && last_start != *inbuf
|
|
||||||
&& *inbuf + cd->steps->min_needed_from <= inbufend);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
@ -1,71 +0,0 @@
|
||||||
extern void __assert_fail (const char *, const char *, unsigned int, const char *)
|
|
||||||
__attribute__ ((__nothrow__, __noreturn__));
|
|
||||||
|
|
||||||
struct gst;
|
|
||||||
struct gs;
|
|
||||||
|
|
||||||
extern void bar (void *) __attribute__ ((__nothrow__));
|
|
||||||
|
|
||||||
void bar (void *x)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef int (*gf) (struct gst *, struct gs *,
|
|
||||||
const unsigned char **, const unsigned char *,
|
|
||||||
unsigned char **, unsigned long *, int, int);
|
|
||||||
|
|
||||||
struct gst
|
|
||||||
{
|
|
||||||
gf fct;
|
|
||||||
int min_needed_from;
|
|
||||||
};
|
|
||||||
|
|
||||||
struct gs
|
|
||||||
{
|
|
||||||
unsigned char *outbuf;
|
|
||||||
unsigned char *outbufend;
|
|
||||||
int flags;
|
|
||||||
int invocation_counter;
|
|
||||||
int internal_use;
|
|
||||||
};
|
|
||||||
|
|
||||||
typedef struct gi
|
|
||||||
{
|
|
||||||
unsigned long nsteps;
|
|
||||||
struct gst *steps;
|
|
||||||
struct gs data [10];
|
|
||||||
} *gt;
|
|
||||||
|
|
||||||
int
|
|
||||||
baz (gt cd, const unsigned char **inbuf,
|
|
||||||
const unsigned char *inbufend, unsigned char **outbuf,
|
|
||||||
unsigned char *outbufend, unsigned long *irreversible)
|
|
||||||
{
|
|
||||||
unsigned long last_step;
|
|
||||||
int result;
|
|
||||||
last_step = cd->nsteps - 1;
|
|
||||||
*irreversible = 0;
|
|
||||||
cd->data[last_step].outbuf = outbuf != ((void *)0) ? *outbuf : ((void *)0);
|
|
||||||
cd->data[last_step].outbufend = outbufend;
|
|
||||||
gf fct = cd->steps->fct;
|
|
||||||
if (inbuf == ((void *)0) || *inbuf == ((void *)0))
|
|
||||||
result = (bar ((void *) (fct)), (*(fct)) (cd->steps, cd->data, ((void *)0), ((void *)0), ((void *)0), irreversible, cd->data[last_step].outbuf == ((void *)0) ? 2 : 1, 0));
|
|
||||||
else
|
|
||||||
{
|
|
||||||
const unsigned char *last_start;
|
|
||||||
((outbuf != ((void *)0) && *outbuf != ((void *)0)) ? (void) (0) : __assert_fail ("outbuf != ((void *)0) && *outbuf != ((void *)0)", "gconv.c", 67, "foo"));
|
|
||||||
do
|
|
||||||
{
|
|
||||||
last_start = *inbuf;
|
|
||||||
result = (bar ((void *) (fct)), (*(fct)) (cd->steps, cd->data, inbuf, inbufend, ((void *)0), irreversible, 0, 0));
|
|
||||||
}
|
|
||||||
while (result == 4 && last_start != *inbuf
|
|
||||||
&& *inbuf + cd->steps->min_needed_from <= inbufend);
|
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
int
|
|
||||||
main (void)
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
@ -1,82 +0,0 @@
|
||||||
#
|
|
||||||
# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
|
|
||||||
# is made available to anyone wishing to use, modify, copy, or
|
|
||||||
# redistribute it subject to the terms and conditions of the GNU General
|
|
||||||
# Public License v.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.
|
|
||||||
#
|
|
||||||
# Author: Michal Nowak <mnowak@redhat.com>
|
|
||||||
|
|
||||||
# The toplevel namespace within which the test lives.
|
|
||||||
TOPLEVEL_NAMESPACE=tools
|
|
||||||
|
|
||||||
# The name of the package under test:
|
|
||||||
PACKAGE_NAME=binutils
|
|
||||||
|
|
||||||
# The path of the test below the package:
|
|
||||||
RELATIVE_PATH=Sanity/430856-libbfd.a-not-compiled-with-fPIC
|
|
||||||
|
|
||||||
# Version of the Test. Used with make tag.
|
|
||||||
export TESTVERSION=1.1
|
|
||||||
|
|
||||||
# The combined namespace of the test.
|
|
||||||
export TEST=/$(TOPLEVEL_NAMESPACE)/$(PACKAGE_NAME)/$(RELATIVE_PATH)
|
|
||||||
|
|
||||||
|
|
||||||
# A phony target is one that is not really the name of a file.
|
|
||||||
# It is just a name for some commands to be executed when you
|
|
||||||
# make an explicit request. There are two reasons to use a
|
|
||||||
# phony target: to avoid a conflict with a file of the same
|
|
||||||
# name, and to improve performance.
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
# executables to be built should be added here, they will be generated on the system under test.
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
# data files, .c files, scripts anything needed to either compile the test and/or run it.
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE bz430856.tar.gz
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
chmod a+x ./runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ *.rpm $(BUILT_FILES)
|
|
||||||
|
|
||||||
# You may need to add other targets e.g. to build executables from source code
|
|
||||||
# Add them here:
|
|
||||||
|
|
||||||
|
|
||||||
# Include Common Makefile
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
# Generate the testinfo.desc here:
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@touch $(METADATA)
|
|
||||||
# Change to the test owner's name
|
|
||||||
@echo "Owner: Michal Nowak <mnowak@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Description: libbfd.a not compiled with -fPIC">> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: $(PACKAGE_NAME)" >> $(METADATA)
|
|
||||||
# add any other packages for which your test ought to run here
|
|
||||||
@echo "Requires: $(PACKAGE_NAME)" >> $(METADATA)
|
|
||||||
@echo "Requires: $(PACKAGE_NAME)-devel" >> $(METADATA)
|
|
||||||
@echo "Requires: gcc glibc-headers" >> $(METADATA)
|
|
||||||
# add any other requirements for the script to run here
|
|
||||||
|
|
||||||
# You may need other fields here; see the documentation
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
||||||
|
|
@ -1,11 +0,0 @@
|
||||||
Would it be possible to have /usr/lib64/libbfd.a in binutils
|
|
||||||
compiled with -fPIC? Otherwise, shared apps can't link against
|
|
||||||
libbfd. In binutils.spec, libiberty.a is already recreated
|
|
||||||
with -fPIC, is there some reason the same isn't done for
|
|
||||||
libbfd?
|
|
||||||
|
|
||||||
From binutils.spec:
|
|
||||||
|
|
||||||
# Rebuild libiberty.a with -fPIC
|
|
||||||
make -C libiberty clean
|
|
||||||
make CFLAGS="-g -fPIC $RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64" -C libiberty
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
summary: libbfd.a not compiled with -fPIC
|
|
||||||
description: "Would it be possible to have /usr/lib64/libbfd.a in binutils\ncompiled\
|
|
||||||
\ with -fPIC? Otherwise, shared apps can't link against\nlibbfd. In binutils.spec,\
|
|
||||||
\ libiberty.a is already recreated \nwith -fPIC, is there some reason the same\
|
|
||||||
\ isn't done for \nlibbfd?\n\nFrom binutils.spec:\n\n # Rebuild libiberty.a with\
|
|
||||||
\ -fPIC\n make -C libiberty clean\n make CFLAGS=\"-g -fPIC $RPM_OPT_FLAGS -D_FILE_OFFSET_BITS=64\"\
|
|
||||||
\ -C libiberty\n"
|
|
||||||
contact: Michal Nowak <mnowak@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
- binutils-devel
|
|
||||||
- gcc
|
|
||||||
- glibc-headers
|
|
||||||
duration: 5m
|
|
||||||
extra-summary: /tools/binutils/Sanity/430856-libbfd.a-not-compiled-with-fPIC
|
|
||||||
extra-task: /tools/binutils/Sanity/430856-libbfd.a-not-compiled-with-fPIC
|
|
||||||
|
|
@ -1,21 +0,0 @@
|
||||||
CC=gcc
|
|
||||||
CFLAGS=-g -Wall
|
|
||||||
|
|
||||||
all: test
|
|
||||||
|
|
||||||
libbfdtest.so bfdtest: Makefile
|
|
||||||
|
|
||||||
libbfdtest.so: libbfdtest.c libbfdtest.h
|
|
||||||
$(CC) $(CFLAGS) -shared -o $@ -fPIC $< -lbfd -liberty
|
|
||||||
|
|
||||||
bfdtest: bfdtest.c libbfdtest.h libbfdtest.so
|
|
||||||
$(CC) -o $@ $< -L. -Wl,-rpath,. -lbfdtest -ldl
|
|
||||||
|
|
||||||
.PHONY: test
|
|
||||||
test: bfdtest
|
|
||||||
./$<
|
|
||||||
@echo OK
|
|
||||||
|
|
||||||
clean:
|
|
||||||
$(RM) libbfdtest.so bfdtest
|
|
||||||
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
#include "libbfdtest.h"
|
|
||||||
|
|
||||||
int
|
|
||||||
main (void)
|
|
||||||
{
|
|
||||||
return libbfdtest () ? 0 : 1;
|
|
||||||
}
|
|
||||||
|
|
@ -1,10 +0,0 @@
|
||||||
#include <bfd.h>
|
|
||||||
|
|
||||||
#include "libbfdtest.h"
|
|
||||||
|
|
||||||
int
|
|
||||||
libbfdtest (void)
|
|
||||||
{
|
|
||||||
bfd_set_error (bfd_error_no_error);
|
|
||||||
return bfd_get_error () == bfd_error_no_error;
|
|
||||||
}
|
|
||||||
|
|
@ -1 +0,0 @@
|
||||||
extern int libbfdtest (void);
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
# Include rhts environment
|
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
||||||
|
|
||||||
PACKAGE="binutils"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
rlShowPackageVersion $PACKAGE
|
|
||||||
rlShowRunningKernel
|
|
||||||
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
cp reproducer/* $TmpDir
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlRun "make clean" 0 "Make clean"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "make" 0 "Build the files"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
||||||
# Copyright (c) 2006 Red Hat, Inc. All rights reserved. This copyrighted material
|
|
||||||
# is made available to anyone wishing to use, modify, copy, or
|
|
||||||
# redistribute it subject to the terms and conditions of the GNU General
|
|
||||||
# Public License v.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.
|
|
||||||
#
|
|
||||||
# Author: Michal Nowak <mnowak@redhat.com>
|
|
||||||
|
|
||||||
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
|
|
||||||
# Example Makefile for RHTS #
|
|
||||||
# This example is geared towards a test for a specific package #
|
|
||||||
# It does most of the work for you, but may require further coding #
|
|
||||||
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~#
|
|
||||||
|
|
||||||
# The toplevel namespace within which the test lives.
|
|
||||||
TOPLEVEL_NAMESPACE=tools
|
|
||||||
|
|
||||||
# The name of the package under test:
|
|
||||||
PACKAGE_NAME=binutils
|
|
||||||
|
|
||||||
# The path of the test below the package:
|
|
||||||
RELATIVE_PATH=Sanity/435078-output-of-strings-0-n-is-incorrect
|
|
||||||
|
|
||||||
# Version of the Test. Used with make tag.
|
|
||||||
export TESTVERSION=1.1
|
|
||||||
|
|
||||||
# The combined namespace of the test.
|
|
||||||
export TEST=/$(TOPLEVEL_NAMESPACE)/$(PACKAGE_NAME)/$(RELATIVE_PATH)
|
|
||||||
|
|
||||||
|
|
||||||
# A phony target is one that is not really the name of a file.
|
|
||||||
# It is just a name for some commands to be executed when you
|
|
||||||
# make an explicit request. There are two reasons to use a
|
|
||||||
# phony target: to avoid a conflict with a file of the same
|
|
||||||
# name, and to improve performance.
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
# executables to be built should be added here, they will be generated on the system under test.
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
# data files, .c files, scripts anything needed to either compile the test and/or run it.
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
chmod a+x ./runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ *.rpm $(BUILT_FILES)
|
|
||||||
|
|
||||||
# You may need to add other targets e.g. to build executables from source code
|
|
||||||
# Add them here:
|
|
||||||
|
|
||||||
|
|
||||||
# Include Common Makefile
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
# Generate the testinfo.desc here:
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@touch $(METADATA)
|
|
||||||
# Change to the test owner's name
|
|
||||||
@echo "Owner: Michal Nowak <mnowak@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Description: The output of "strings -0 file" is in loop and "-n 0xA" cannot be correctly recognized">> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: $(PACKAGE_NAME)" >> $(METADATA)
|
|
||||||
# add any other packages for which your test ought to run here
|
|
||||||
@echo "Requires: $(PACKAGE_NAME)" >> $(METADATA)
|
|
||||||
# add any other requirements for the script to run here
|
|
||||||
|
|
||||||
# You may need other fields here; see the documentation
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
Use "strings -0 file", the output will be in loop.
|
|
||||||
And "strings -n 0xA file" will report error as "invalid number 0xA"
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
summary: The output of strings -0 file is in loop and -n 0xA cannot be correctly recognized
|
|
||||||
description: |
|
|
||||||
Use "strings -0 file", the output will be in loop.
|
|
||||||
And "strings -n 0xA file" will report error as "invalid number 0xA"
|
|
||||||
contact: Michal Nowak <mnowak@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
duration: 5m
|
|
||||||
extra-summary: /tools/binutils/Sanity/435078-output-of-strings-0-n-is-incorrect
|
|
||||||
extra-task: /tools/binutils/Sanity/435078-output-of-strings-0-n-is-incorrect
|
|
||||||
|
|
@ -1,56 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
# Include rhts environment
|
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
||||||
|
|
||||||
PACKAGE="binutils"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup Setup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
rlShowPackageVersion $PACKAGE
|
|
||||||
rlShowRunningKernel
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlRun "echo -e \"asdjkhsd\nsdsdsdssd\n\nsdsd\n\" > tstfile" 0 "Generating test file tstfile"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest TestingOne
|
|
||||||
rlRun "strings -0 tstfile > errorfile 2>&1 &"
|
|
||||||
rlRun "sleep 5"
|
|
||||||
rlRun "jobs"
|
|
||||||
rlRun "kill -9 %1" 1 "strings in the loop"
|
|
||||||
rlAssertGrep "minim" errorfile
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest TestingTwo
|
|
||||||
rlRun "strings -n 0xA tstfile" 0 "echo \"PASS: tstfile processed.\""
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup Cleanup
|
|
||||||
rlBundleLogs "binutils-outputs" errorfile tstfile
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir $rlRun_LOG" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,60 +0,0 @@
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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 3 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/>.
|
|
||||||
#
|
|
||||||
# Author: Michal Nowak <mnowak@redhat.com>
|
|
||||||
|
|
||||||
|
|
||||||
TOPLEVEL_NAMESPACE=/tools
|
|
||||||
PACKAGE_NAME=binutils
|
|
||||||
RELATIVE_PATH=Sanity/480009-when-mistaking-argument-of-strings
|
|
||||||
|
|
||||||
export TEST=$(TOPLEVEL_NAMESPACE)/$(PACKAGE_NAME)/$(RELATIVE_PATH)
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
chmod a+x ./runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@touch $(METADATA)
|
|
||||||
@echo "Owner: Michal Nowak <mnowak@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Description: When mistaking the argument of strings command , the same error message is output." >> $(METADATA)
|
|
||||||
@echo "Bug: 480009" >> $(METADATA)
|
|
||||||
@echo "Type: Sanity" >> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: $(PACKAGE_NAME)" >> $(METADATA)
|
|
||||||
@echo "Requires: $(PACKAGE_NAME)" >> $(METADATA)
|
|
||||||
@echo "License: GPLv3+" >> $(METADATA)
|
|
||||||
@echo "Releases: -RHEL4 -RHEL5" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,27 +0,0 @@
|
||||||
[RHEL5.2]
|
|
||||||
# strings -n file1
|
|
||||||
strings: invalid integer argument file1
|
|
||||||
|
|
||||||
# strings --bytes file1
|
|
||||||
strings: invalid integer argument file1
|
|
||||||
|
|
||||||
# strings -n 0
|
|
||||||
strings: invalid number 0
|
|
||||||
|
|
||||||
# strings --bytes 0
|
|
||||||
strings: invalid number 0
|
|
||||||
|
|
||||||
|
|
||||||
[RHEL5.3]
|
|
||||||
# strings -n file1
|
|
||||||
strings: invalid minimum string length 0
|
|
||||||
|
|
||||||
# strings --bytes file1
|
|
||||||
strings: invalid minimum string length 0
|
|
||||||
|
|
||||||
# strings -n 0
|
|
||||||
strings: invalid minimum string length 0
|
|
||||||
|
|
||||||
# strings --bytes 0
|
|
||||||
strings: invalid minimum string length 0
|
|
||||||
|
|
||||||
|
|
@ -1,42 +0,0 @@
|
||||||
summary: When mistaking the argument of strings command , the same error message is
|
|
||||||
output.
|
|
||||||
description: |+
|
|
||||||
[RHEL5.2]
|
|
||||||
# strings -n file1
|
|
||||||
strings: invalid integer argument file1
|
|
||||||
|
|
||||||
# strings --bytes file1
|
|
||||||
strings: invalid integer argument file1
|
|
||||||
|
|
||||||
# strings -n 0
|
|
||||||
strings: invalid number 0
|
|
||||||
|
|
||||||
# strings --bytes 0
|
|
||||||
strings: invalid number 0
|
|
||||||
|
|
||||||
|
|
||||||
[RHEL5.3]
|
|
||||||
# strings -n file1
|
|
||||||
strings: invalid minimum string length 0
|
|
||||||
|
|
||||||
# strings --bytes file1
|
|
||||||
strings: invalid minimum string length 0
|
|
||||||
|
|
||||||
# strings -n 0
|
|
||||||
strings: invalid minimum string length 0
|
|
||||||
|
|
||||||
# strings --bytes 0
|
|
||||||
strings: invalid minimum string length 0
|
|
||||||
|
|
||||||
contact: Michal Nowak <mnowak@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
duration: 5m
|
|
||||||
link:
|
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=480009
|
|
||||||
extra-summary: /tools/binutils/Sanity/480009-when-mistaking-argument-of-strings
|
|
||||||
extra-task: /tools/binutils/Sanity/480009-when-mistaking-argument-of-strings
|
|
||||||
|
|
@ -1,49 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# 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 3 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/>.
|
|
||||||
#
|
|
||||||
# Author: Michal Nowak <mnowak@redhat.com>
|
|
||||||
|
|
||||||
# source the test script helpers
|
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
||||||
|
|
||||||
PACKAGE=binutils
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlShowPackageVersion $PACKAGE
|
|
||||||
rlShowRunningKernel
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest "#1: strings -n file1"
|
|
||||||
rlRun "strings -n file1 2>&1 | grep 'invalid integer argument file1'" 0 "Produced expected error msg: 'strings: invalid integer argument file1'"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest "#2: strings --bytes file1"
|
|
||||||
rlRun "strings --bytes file1 2>&1 | grep 'invalid integer argument file1'" 0 "Produced expected error msg: 'strings: invalid integer argument file1'"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest "#3: strings -n 0"
|
|
||||||
rlRun "strings -n 0 2>&1 | grep 'invalid minimum string length 0'" 0 "Produced expected error msg: 'strings: invalid minimum string length 0'"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest "#4: strings --bytes 0"
|
|
||||||
rlRun "strings --bytes 0 2>&1 | grep 'invalid minimum string length 0'" 0 "Produced expected error msg: 'strings: invalid minimum string length 0'"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/binutils/Regressions/readelf/509124-holes-in-debuginfo
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE ascend.C test.c
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
chmod a+x ./runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Michal Nowak <mnowak@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: holes in debuginfo" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "TestTime: 15m" >> $(METADATA)
|
|
||||||
@echo "RunFor: binutils" >> $(METADATA)
|
|
||||||
@echo "Requires: binutils gcc44 gcc gcc44-c++ gcc-c++" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: no" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 509124 499164" >> $(METADATA)
|
|
||||||
@echo "Releases: -RHEL4 -RHEL5" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
(1) readelf fix now posted upstream:
|
|
||||||
http://sourceware.org/ml/binutils/2009-07/msg00123.html
|
|
||||||
QA: New testcase: binutils-all/testranges.s
|
|
||||||
|
|
||||||
(2) gcc has been fixed based on this bugreport by Jakub upstream:
|
|
||||||
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40713
|
|
||||||
gcc44 backport request for RHEL-5.5 is: Bug 510958
|
|
||||||
|
|
||||||
(3) Going to be backported for RHEL-5.5 readelf.
|
|
||||||
It has been already fixed by Nick Clifton upstream:
|
|
||||||
http://sourceware.org/ml/binutils/2009-06/msg00418.html
|
|
||||||
http://sourceware.org/ml/binutils-cvs/2009-06/msg00158.html
|
|
||||||
QA: RHEL-only new testcase: binutils-all/testloc.S
|
|
||||||
as a part of binutils-all/readelf.exp (not shown when PASSing)
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
class A {
|
|
||||||
public:
|
|
||||||
A();
|
|
||||||
void f(){}
|
|
||||||
};
|
|
||||||
|
|
||||||
class C {
|
|
||||||
C();
|
|
||||||
};
|
|
||||||
|
|
||||||
C::C() {
|
|
||||||
A* p = new A;
|
|
||||||
p->f();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,25 +0,0 @@
|
||||||
summary: holes in debuginfo
|
|
||||||
description: "(1) readelf fix now posted upstream:\n http://sourceware.org/ml/binutils/2009-07/msg00123.html\n\
|
|
||||||
QA: New testcase: binutils-all/testranges.s\n\n(2) gcc has been fixed based on\
|
|
||||||
\ this bugreport by Jakub upstream:\n http://gcc.gnu.org/bugzilla/show_bug.cgi?id=40713\n\
|
|
||||||
\ gcc44 backport request for RHEL-5.5 is: Bug 510958\n\n(3) Going to be backported\
|
|
||||||
\ for RHEL-5.5 readelf.\n It has been already fixed by Nick Clifton upstream:\n\
|
|
||||||
\ http://sourceware.org/ml/binutils/2009-06/msg00418.html\n http://sourceware.org/ml/binutils-cvs/2009-06/msg00158.html\n\
|
|
||||||
QA: RHEL-only new testcase: binutils-all/testloc.S\n as a part of binutils-all/readelf.exp\
|
|
||||||
\ (not shown when PASSing) \n"
|
|
||||||
contact: Michal Nowak <mnowak@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
- gcc44
|
|
||||||
- gcc
|
|
||||||
- gcc44-c++
|
|
||||||
- gcc-c++
|
|
||||||
duration: 15m
|
|
||||||
link:
|
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=509124
|
|
||||||
extra-summary: /tools/binutils/Regressions/readelf/509124-holes-in-debuginfo
|
|
||||||
extra-task: /tools/binutils/Regressions/readelf/509124-holes-in-debuginfo
|
|
||||||
|
|
@ -1,73 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
# Author: Michal Nowak <mnowak@redhat.com>
|
|
||||||
#
|
|
||||||
# Include rhts environment
|
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
||||||
|
|
||||||
PACKAGE="binutils"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup Setup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
rlShowPackageVersion $PACKAGE
|
|
||||||
rlShowRunningKernel
|
|
||||||
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
cp ascend.C test.c $TmpDir
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
for gcc in $( ls /usr/bin/gcc{,44} 2> /dev/null ); do
|
|
||||||
for opt in s $( seq 0 3 ); do
|
|
||||||
rlPhaseStartTest "ascend.C: gcc=$gcc opt=$opt"
|
|
||||||
rlRun "$gcc -O${opt} ascend.C -c -g"
|
|
||||||
rlAssertExists "ascend.o"
|
|
||||||
# kinda weird running readelf on .o file, but...
|
|
||||||
rlRun "readelf -a -w -W ./ascend.o > /dev/less 2> readelf.errout.g++" 0 "[gcc] Generating readelf output"
|
|
||||||
rlLog "$( cat readelf.errout.g++ )"
|
|
||||||
rlAssertNotGrep "readelf" readelf.errout.g++
|
|
||||||
rm -f ./ascend.o
|
|
||||||
rlPhaseEnd
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
for gcc in $( ls /usr/bin/gcc{,44} 2> /dev/null ); do
|
|
||||||
for opt in s $( seq 0 3 ); do
|
|
||||||
rlPhaseStartTest "test.c: gcc=$gcc opt=$opt"
|
|
||||||
rlRun "$gcc -O${opt} test.c -c -g"
|
|
||||||
rlAssertExists "test.o"
|
|
||||||
# kinda weird running readelf on .o file, but...
|
|
||||||
rlRun "readelf -a -w -W ./test.o > /dev/less 2> readelf.errout.g++" 0 "[gcc] Generating readelf output"
|
|
||||||
rlLog "$( cat readelf.errout.g++ )"
|
|
||||||
rlAssertNotGrep "readelf" readelf.errout.g++
|
|
||||||
rm -f ./test.o
|
|
||||||
rlPhaseEnd
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
rlPhaseStartCleanup Cleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,14 +0,0 @@
|
||||||
void f(int i) {
|
|
||||||
k(i);
|
|
||||||
}
|
|
||||||
|
|
||||||
void g(int i) {
|
|
||||||
int j[65537];
|
|
||||||
l(i,j);
|
|
||||||
}
|
|
||||||
|
|
||||||
struct s {
|
|
||||||
void (*m)(int i);
|
|
||||||
void (*n)(int i);
|
|
||||||
} t={f,g};
|
|
||||||
|
|
||||||
|
|
@ -1,59 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/binutils/Regressions/ld/531269-ld-fails-to-merge-different-visibility-for-the-same-symbol
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE bar.c foo.c
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
chmod a+x ./runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Michal Nowak <mnowak@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: ld fails to merge different visibility for the same symbol in distinct object files" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: binutils binutils220" >> $(METADATA)
|
|
||||||
@echo "Requires: binutils binutils220 gcc44 gcc" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: no" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 531269" >> $(METADATA)
|
|
||||||
@echo "Architectures: i386 x86_64" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
int foo __attribute__ ((section (".gnu.linkonce.d.1"),
|
|
||||||
visibility ("hidden"))) = 1;
|
|
||||||
int
|
|
||||||
__attribute__ ((section (".gnu.linkonce.t.1"), visibility ("hidden")))
|
|
||||||
bar ()
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
int
|
|
||||||
get_foo ()
|
|
||||||
{
|
|
||||||
return foo;
|
|
||||||
}
|
|
||||||
int
|
|
||||||
get_bar ()
|
|
||||||
{
|
|
||||||
return bar ();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
@ -1,7 +0,0 @@
|
||||||
int foo __attribute__ ((section (".gnu.linkonce.d.1"))) = 1;
|
|
||||||
int
|
|
||||||
__attribute__ ((section (".gnu.linkonce.t.1")))
|
|
||||||
bar ()
|
|
||||||
{
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
@ -1,19 +0,0 @@
|
||||||
summary: ld fails to merge different visibility for the same symbol in distinct object
|
|
||||||
files
|
|
||||||
description: ''
|
|
||||||
contact: Michal Nowak <mnowak@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
- binutils220
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
- binutils220
|
|
||||||
- gcc44
|
|
||||||
- gcc
|
|
||||||
duration: 5m
|
|
||||||
link:
|
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=531269
|
|
||||||
extra-summary: /tools/binutils/Regressions/ld/531269-ld-fails-to-merge-different-visibility-for-the-same-symbol
|
|
||||||
extra-task: /tools/binutils/Regressions/ld/531269-ld-fails-to-merge-different-visibility-for-the-same-symbol
|
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2009 Red Hat, Inc. All rights reserved.
|
|
||||||
#
|
|
||||||
# This copyrighted material is made available to anyone wishing
|
|
||||||
# to use, modify, copy, or redistribute it subject to the terms
|
|
||||||
# and conditions of the GNU General Public License version 2.
|
|
||||||
#
|
|
||||||
# This program is distributed in the hope that it will be
|
|
||||||
# useful, but WITHOUT ANY WARRANTY; without even the implied
|
|
||||||
# warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
|
|
||||||
# PURPOSE. See the GNU General Public License for more details.
|
|
||||||
#
|
|
||||||
# You should have received a copy of the GNU General Public
|
|
||||||
# License along with this program; if not, write to the Free
|
|
||||||
# Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
|
|
||||||
# Boston, MA 02110-1301, USA.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
# Author: Michal Nowak <mnowak@redhat.com>
|
|
||||||
#
|
|
||||||
# Include rhts environment
|
|
||||||
. /usr/share/beakerlib/beakerlib.sh || exit 1
|
|
||||||
|
|
||||||
PACKAGE="binutils"
|
|
||||||
|
|
||||||
# Choose the compiler.
|
|
||||||
GCC=${GCC:-gcc}
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
rlShowPackageVersion $PACKAGE
|
|
||||||
rlShowRunningKernel
|
|
||||||
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
cp foo.c bar.c $TmpDir
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest "gcc=$GCC Testing"
|
|
||||||
rlRun "$GCC -fPIC -c -o foo.o foo.c" 0 "Compile foo.c => foo.o"
|
|
||||||
rlRun "$GCC -fPIC -c -o bar.o bar.c" 0 "Compile bar.c => bar.o"
|
|
||||||
rlRun "ld -shared -o foobar.so foo.o bar.o" 0 "Link foo.o & bar.o => foobar.so"
|
|
||||||
rlAssertExists foobar.so
|
|
||||||
rm foobar.so foo.o bar.o
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup Cleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /tools/binutils/Regression/RELRO-protection-effective
|
|
||||||
# Description: bz1174826
|
|
||||||
# Author: Martin Cermak <mcermak@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2014 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/.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/binutils/Regression/RELRO-protection-effective
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
test -x runtest.sh || chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Martin Cermak <mcermak@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: bz1174826" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: binutils" >> $(METADATA)
|
|
||||||
@echo "Requires: binutils gcc" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2+" >> $(METADATA)
|
|
||||||
@echo "Confidential: no" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 1174826" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
||||||
PURPOSE of /tools/binutils/Regression/RELRO-protection-effective
|
|
||||||
Description: bz1174826
|
|
||||||
Author: Martin Cermak <mcermak@redhat.com>
|
|
||||||
Bug summary: RELRO is not read-only on PowerLE
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1174826
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Test to exercise PIE and RELRO provided by Roland McGrath <roland@redhat.com>.
|
|
||||||
*
|
|
||||||
* Description:
|
|
||||||
* Simple test for RELRO, which happens to be a PIE too, but that's only
|
|
||||||
* because this kind of example has to be in PIC code to make RELRO relevant,
|
|
||||||
* and PIE makes it simpler to write a standalone one-file test than writing
|
|
||||||
* a DSO.
|
|
||||||
*
|
|
||||||
* The "const" makes "foo" .rodata material, and the init to an external symbol
|
|
||||||
* reference makes it require a data relocation. Enabling -z relro for this
|
|
||||||
* link puts that .rodata into a RELRO area. This program will crash because
|
|
||||||
* the page containing "foo" has been made read-only when "main" runs.
|
|
||||||
* Without RELRO, it would let you modify "foo" even though it's supposed to
|
|
||||||
* be const.
|
|
||||||
*
|
|
||||||
* Test with RELRO should fail:
|
|
||||||
* $ gcc -pie -fPIE -g -Wl,-z,relro -o relro relro.c
|
|
||||||
* $ ./relro
|
|
||||||
* Segmentation fault (core dumped)
|
|
||||||
*
|
|
||||||
* Test without RELRO should pass:
|
|
||||||
* $ gcc -pie -fPIE -g -Wl,-z,norelro -o no-relro relro.c
|
|
||||||
* $ ./no-relro
|
|
||||||
*
|
|
||||||
**/
|
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -1,43 +0,0 @@
|
||||||
summary: bz1174826
|
|
||||||
description: "Bug summary: RELRO is not read-only on PowerLE\nBugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1174826\n\
|
|
||||||
\n/* \
|
|
||||||
\ \n * Test to exercise PIE and RELRO provided by Roland McGrath <roland@redhat.com>.\n\
|
|
||||||
\ * \
|
|
||||||
\ \n * Description: \
|
|
||||||
\ \n * Simple test for RELRO, which happens to be a PIE too,\
|
|
||||||
\ but that's only \n * because this kind of example has to be in PIC\
|
|
||||||
\ code to make RELRO relevant, \n * and PIE makes it simpler to write a standalone\
|
|
||||||
\ one-file test than writing \n * a DSO. \
|
|
||||||
\ \n * \
|
|
||||||
\ \n * The \"const\" makes \"\
|
|
||||||
foo\" .rodata material, and the init to an external symbol\n * reference makes\
|
|
||||||
\ it require a data relocation. Enabling -z relro for this \n * link puts\
|
|
||||||
\ that .rodata into a RELRO area. This program will crash because \n * the\
|
|
||||||
\ page containing \"foo\" has been made read-only when \"main\" runs. \
|
|
||||||
\ \n * Without RELRO, it would let you modify \"foo\" even though it's supposed\
|
|
||||||
\ to \n * be const. \
|
|
||||||
\ \n * \
|
|
||||||
\ \n * Test with RELRO should fail: \
|
|
||||||
\ \n * $ gcc -pie -fPIE -g -Wl,-z,relro -o relro\
|
|
||||||
\ relro.c \n * $ ./relro \
|
|
||||||
\ \n * Segmentation fault (core\
|
|
||||||
\ dumped) \n * \
|
|
||||||
\ \n * Test without\
|
|
||||||
\ RELRO should pass: \n * $\
|
|
||||||
\ gcc -pie -fPIE -g -Wl,-z,norelro -o no-relro relro.c \
|
|
||||||
\ \n * $ ./no-relro \
|
|
||||||
\ \n * \
|
|
||||||
\ \n**/\n\n\n"
|
|
||||||
contact: Martin Cermak <mcermak@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
- gcc
|
|
||||||
duration: 5m
|
|
||||||
link:
|
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1174826
|
|
||||||
extra-summary: /tools/binutils/Regression/RELRO-protection-effective
|
|
||||||
extra-task: /tools/binutils/Regression/RELRO-protection-effective
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /tools/binutils/Regression/RELRO-protection-effective
|
|
||||||
# Description: bz1174826
|
|
||||||
# Author: Martin Cermak <mcermak@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2014 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
|
|
||||||
|
|
||||||
PACKAGE="binutils"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
touch /tmp/disable-qe-abrt
|
|
||||||
rlRun "TMPD=\$(mktemp -d)"
|
|
||||||
rlRun "pushd $TMPD"
|
|
||||||
cat > relro.c <<-EOF
|
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
void *const foo = &stdout;
|
|
||||||
|
|
||||||
int main (void)
|
|
||||||
{
|
|
||||||
*(void **) &foo = &stderr;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
EOF
|
|
||||||
rlRun "gcc -pie -fPIE -g -Wl,-z,relro -o relro relro.c"
|
|
||||||
rlRun "gcc -pie -fPIE -g -Wl,-z,norelro -o no-relro relro.c"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "./relro" 139
|
|
||||||
rlRun "./no-relro"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TMPD"
|
|
||||||
rm -f /tmp/disable-qe-abrt
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /tools/binutils/Regression/bz1080077-RFE-Please-configure-ld-bfd-to-allow-sysroot
|
|
||||||
# Description: Test for BZ#1080077 ([RFE] - Please configure ld.bfd to allow --sysroot)
|
|
||||||
# Author: Martin Cermak <mcermak@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2014 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/.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/binutils/Regression/bz1080077-RFE-Please-configure-ld-bfd-to-allow-sysroot
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
test -x runtest.sh || chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Martin Cermak <mcermak@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Test for BZ#1080077 ([RFE] - Please configure ld.bfd to allow --sysroot)" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: binutils" >> $(METADATA)
|
|
||||||
@echo "Requires: binutils" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2+" >> $(METADATA)
|
|
||||||
@echo "Confidential: no" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 1080077" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
PURPOSE of /tools/binutils/Regression/bz1080077-RFE-Please-configure-ld-bfd-to-allow-sysroot
|
|
||||||
Description: Test for BZ#1080077 ([RFE] - Please configure ld.bfd to allow --sysroot)
|
|
||||||
Author: Martin Cermak <mcermak@redhat.com>
|
|
||||||
Bug summary: [RFE] - Please configure ld.bfd to allow --sysroot
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1080077
|
|
||||||
|
|
@ -1,16 +0,0 @@
|
||||||
summary: Test for BZ#1080077 ([RFE] - Please configure ld.bfd to allow --sysroot)
|
|
||||||
description: |
|
|
||||||
Bug summary: [RFE] - Please configure ld.bfd to allow --sysroot
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1080077
|
|
||||||
contact: Martin Cermak <mcermak@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
duration: 5m
|
|
||||||
link:
|
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1080077
|
|
||||||
extra-summary: /tools/binutils/Regression/bz1080077-RFE-Please-configure-ld-bfd-to-allow-sysroot
|
|
||||||
extra-task: /tools/binutils/Regression/bz1080077-RFE-Please-configure-ld-bfd-to-allow-sysroot
|
|
||||||
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /tools/binutils/Regression/bz1080077-RFE-Please-configure-ld-bfd-to-allow-sysroot
|
|
||||||
# Description: Test for BZ#1080077 ([RFE] - Please configure ld.bfd to allow --sysroot)
|
|
||||||
# Author: Martin Cermak <mcermak@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2014 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
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartTest
|
|
||||||
LD_BDF=$(which ld.bfd)
|
|
||||||
RPM=$(rpm -qf $LD_BDF)
|
|
||||||
rlLogInfo "ld.bfd is $LD_BDF of $RPM"
|
|
||||||
rlRun "ld.bfd --sysroot=/tmp |& grep 'not configured to use sysroots'" 1
|
|
||||||
rlRun "ld.bfd --sysroot=/tmp |& grep 'no input files'"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /tools/binutils/Regression/bz1117458-ld-from-devtoolset-copies-SONAME-to-DT-NEEDED
|
|
||||||
# Description: Test for BZ#1117458 (ld from devtoolset copies SONAME to DT_NEEDED)
|
|
||||||
# Author: Milos Prchlik <mprchlik@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.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/binutils/Regression/bz1117458-ld-from-devtoolset-copies-SONAME-to-DT-NEEDED
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE libtest.tar.gz
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
test -x runtest.sh || chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Milos Prchlik <mprchlik@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Test for BZ#1117458 (ld from devtoolset copies SONAME to DT_NEEDED)" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "TestTime: 5m" >> $(METADATA)
|
|
||||||
@echo "RunFor: binutils" >> $(METADATA)
|
|
||||||
@echo "Requires: binutils" >> $(METADATA)
|
|
||||||
@echo "Requires: devtoolset-3.0-tools-devtoolset-3.0-Install-latest" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: yes" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 1117458" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
PURPOSE of /tools/binutils/Regression/bz1117458-ld-from-devtoolset-copies-SONAME-to-DT-NEEDED
|
|
||||||
Description: Test for BZ#1117458 (ld from devtoolset copies SONAME to DT_NEEDED)
|
|
||||||
Author: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
Bug summary: ld from devtoolset copies SONAME to DT_NEEDED without checking if it’s empty
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1117458
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
int foo(void) {
|
|
||||||
return 10;
|
|
||||||
}
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
summary: Test for BZ#1117458 (ld from devtoolset copies SONAME to DT_NEEDED)
|
|
||||||
description: |
|
|
||||||
Bug summary: ld from devtoolset copies SONAME to DT_NEEDED without checking if it’s empty
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1117458
|
|
||||||
contact: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
- gcc
|
|
||||||
duration: 5m
|
|
||||||
link:
|
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1117458
|
|
||||||
extra-summary: /tools/binutils/Regression/bz1117458-ld-from-devtoolset-copies-SONAME-to-DT-NEEDED
|
|
||||||
extra-task: /tools/binutils/Regression/bz1117458-ld-from-devtoolset-copies-SONAME-to-DT-NEEDED
|
|
||||||
|
|
@ -1,63 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /tools/binutils/Regression/bz1117458-ld-from-devtoolset-copies-SONAME-to-DT-NEEDED
|
|
||||||
# Description: Test for BZ#1117458 (ld from devtoolset copies SONAME to DT_NEEDED)
|
|
||||||
# Author: Milos Prchlik <mprchlik@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
|
|
||||||
|
|
||||||
PACKAGE="binutils"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlAssertRpm $PACKAGE
|
|
||||||
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
rlRun "cp user.c libfoo.c $TmpDir/"
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "gcc -fPIC -g -c libfoo.c"
|
|
||||||
rlAssertExists "libfoo.o"
|
|
||||||
rlRun "gcc -shared -Wl,-soname, -o libfoo.so -lc libfoo.o 2>&1 | tee out" 0
|
|
||||||
rlAssertExists "libfoo.so"
|
|
||||||
rlLogInfo "gcc output:"
|
|
||||||
rlLogInfo "$(cat out)"
|
|
||||||
rlAssertGrep "SONAME must not be empty string; ignored" out
|
|
||||||
rlRun "objdump -p libfoo.so | grep SONAME | awk '{print \$2}' > soname"
|
|
||||||
if [ "`stat -c '%s' soname`" != "0" ]; then
|
|
||||||
rlLogInfo "SONAME='$(cat soname)'"
|
|
||||||
rlFail "Detected SONAME is empty"
|
|
||||||
fi
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd" # $TmpDir
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,9 +0,0 @@
|
||||||
#include <stdio.h>
|
|
||||||
|
|
||||||
extern int foo(void);
|
|
||||||
|
|
||||||
int main(void) {
|
|
||||||
int a = foo();
|
|
||||||
printf("a is %d\n", a);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
@ -1,65 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /tools/binutils/Regression/bz1172766-ppc64-segv-in-libbfd
|
|
||||||
# Description: Test for BZ#1172766 (ppc64 segv in libbfd)
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/binutils/Regression/bz1172766-ppc64-segv-in-libbfd
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
test -x runtest.sh || chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Milos Prchlik <mprchlik@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Test for BZ#1172766 (ppc64 segv in libbfd)" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "TestTime: 30m" >> $(METADATA)
|
|
||||||
@echo "RunFor: binutils" >> $(METADATA)
|
|
||||||
@echo "Requires: binutils kernel-debuginfo xz" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: yes" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 1172766" >> $(METADATA)
|
|
||||||
@echo "Releases: RHEL7" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
PURPOSE of /tools/binutils/Regression/bz1172766-ppc64-segv-in-libbfd
|
|
||||||
Description: Test for BZ#1172766 (ppc64 segv in libbfd)
|
|
||||||
Author: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
Bug summary: ppc64: segv in libbfd
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1172766
|
|
||||||
|
|
@ -1,20 +0,0 @@
|
||||||
summary: Test for BZ#1172766 (ppc64 segv in libbfd)
|
|
||||||
description: |
|
|
||||||
Bug summary: ppc64: segv in libbfd
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1172766
|
|
||||||
contact: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
- elfutils
|
|
||||||
- koji
|
|
||||||
- kernel-debuginfo
|
|
||||||
- xz
|
|
||||||
duration: 30m
|
|
||||||
link:
|
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1172766
|
|
||||||
extra-summary: /tools/binutils/Regression/bz1172766-ppc64-segv-in-libbfd
|
|
||||||
extra-task: /tools/binutils/Regression/bz1172766-ppc64-segv-in-libbfd
|
|
||||||
|
|
@ -1,85 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /tools/binutils/Regression/bz1172766-ppc64-segv-in-libbfd
|
|
||||||
# Description: Test for BZ#1172766 (ppc64 segv in libbfd)
|
|
||||||
# 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
|
|
||||||
|
|
||||||
PACKAGES="binutils"
|
|
||||||
REQUIRES="${REQUIRES:-kernel-debuginfo}"
|
|
||||||
|
|
||||||
__have_kernel_debuginfo () {
|
|
||||||
local RELEASE ARCH TEMPDIR
|
|
||||||
rlRun "RELEASE=$(uname -r)"
|
|
||||||
rlRun "ARCH=$(uname -i)"
|
|
||||||
if ! rpm -q kernel-debuginfo-$RELEASE &>/dev/null; then
|
|
||||||
rlLogInfo 'kernel-debuginfo not present, trying to install it'
|
|
||||||
rlRun "TEMPDIR=$(mktemp -d -p $HOME)" # $HOME to avoid "small" tmpfs
|
|
||||||
rlRun "pushd '$TEMPDIR'"
|
|
||||||
rlRun "koji download-build -q --debuginfo kernel-$RELEASE --arch $ARCH"
|
|
||||||
rlRun "dnf -y install ./kernel-debuginfo-*.rpm"
|
|
||||||
rlRun 'popd'
|
|
||||||
rlRun "rm -rf '$TEMPDIR'"
|
|
||||||
fi
|
|
||||||
rlAssertRpm kernel-debuginfo-$RELEASE
|
|
||||||
}
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlLogInfo "PACKAGES=$PACKAGES"
|
|
||||||
rlLogInfo "REQUIRES=$REQUIRES"
|
|
||||||
rlLogInfo "COLLECTIONS=$COLLECTIONS"
|
|
||||||
rlLogInfo "KERNEL=$(uname -a)"
|
|
||||||
|
|
||||||
__have_kernel_debuginfo
|
|
||||||
|
|
||||||
rlAssertRpm --all
|
|
||||||
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
|
|
||||||
rlRun "KERNEL_RELEASE=$(uname -r)"
|
|
||||||
rlRun "KMOD=/usr/lib/modules/$KERNEL_RELEASE/kernel/fs/nfsd/nfsd.ko"
|
|
||||||
rlRun "KMOD_XZ=$KMOD.xz"
|
|
||||||
rlRun "KMOD_DEBUG=/usr/lib/debug/$KMOD.debug"
|
|
||||||
rlAssertExists "$KMOD_DEBUG"
|
|
||||||
rlAssertExists "$KMOD_XZ"
|
|
||||||
[[ -e "$KMOD" ]] || rlRun "unxz -k $KMOD_XZ"
|
|
||||||
rlAssertExists "$KMOD"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "eu-unstrip $KMOD $KMOD_DEBUG --output=$TmpDir/unstripped.ko"
|
|
||||||
rlRun "objdump -drS $TmpDir/unstripped.ko &> /dev/null"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /tools/binutils/Regression/bz1226864-ld-crashes-on-ppc64-when-being-used-with-oformat
|
|
||||||
# Description: Test for BZ#1226864 (ld crashes on ppc64 when being used with --oformat)
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/binutils/Regression/bz1226864-ld-crashes-on-ppc64-when-being-used-with-oformat
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE ldtest.S
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
test -x runtest.sh || chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Milos Prchlik <mprchlik@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Test for BZ#1226864 (ld crashes on ppc64 when being used with --oformat)" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "TestTime: 15m" >> $(METADATA)
|
|
||||||
@echo "RunFor: binutils" >> $(METADATA)
|
|
||||||
@echo "Requires: binutils" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: yes" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 1226864" >> $(METADATA)
|
|
||||||
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
|
|
||||||
@echo "Architectures: x86_64 ppc64 ppc64le s390x" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
PURPOSE of /tools/binutils/Regression/bz1226864-ld-crashes-on-ppc64-when-being-used-with-oformat
|
|
||||||
Description: Test for BZ#1226864 (ld crashes on ppc64 when being used with --oformat)
|
|
||||||
Author: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
Bug summary: ld crashes on ppc64 when being used with --oformat binary
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1226864
|
|
||||||
|
|
@ -1,3 +0,0 @@
|
||||||
.org 0x100
|
|
||||||
nop
|
|
||||||
|
|
||||||
|
|
@ -1,17 +0,0 @@
|
||||||
summary: Test for BZ#1226864 (ld crashes on ppc64 when being used with --oformat)
|
|
||||||
description: |
|
|
||||||
Bug summary: ld crashes on ppc64 when being used with --oformat binary
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1226864
|
|
||||||
contact: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
- gcc
|
|
||||||
duration: 15m
|
|
||||||
link:
|
|
||||||
- relates: https://bugzilla.redhat.com/show_bug.cgi?id=1226864
|
|
||||||
extra-summary: /tools/binutils/Regression/bz1226864-ld-crashes-on-ppc64-when-being-used-with-oformat
|
|
||||||
extra-task: /tools/binutils/Regression/bz1226864-ld-crashes-on-ppc64-when-being-used-with-oformat
|
|
||||||
|
|
@ -1,79 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /tools/binutils/Regression/bz1226864-ld-crashes-on-ppc64-when-being-used-with-oformat
|
|
||||||
# Description: Test for BZ#1226864 (ld crashes on ppc64 when being used with --oformat)
|
|
||||||
# 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
|
|
||||||
|
|
||||||
LD="${LD:-$(which ld)}"
|
|
||||||
GCC="${GCC:-$(which gcc)}"
|
|
||||||
PACKAGE=$(rpm --qf '%{name}\n' -qf $(which $LD) | head -1)
|
|
||||||
REQUIRES="${REQUIRES:-$(rpm --qf '%{name}\n' -qf $(which $GCC) | head -1)}"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlLogInfo "PACKAGES=$PACKAGES"
|
|
||||||
rlLogInfo "REQUIRES=$REQUIRES"
|
|
||||||
rlLogInfo "COLLECTIONS=$COLLECTIONS"
|
|
||||||
rlLogInfo "GCC=$GCC"
|
|
||||||
rlLogInfo "LD=$LD"
|
|
||||||
|
|
||||||
rlLogInfo "SKIP_COLLECTION_METAPACKAGE_CHECK=$SKIP_COLLECTION_METAPACKAGE_CHECK"
|
|
||||||
|
|
||||||
# We optionally need to skip checking for the presence of the metapackage
|
|
||||||
# because that would pull in all the dependent toolset subrpms. We do not
|
|
||||||
# always want that, especially in CI.
|
|
||||||
_COLLECTIONS="$COLLECTIONS"
|
|
||||||
if ! test -z $SKIP_COLLECTION_METAPACKAGE_CHECK; then
|
|
||||||
for c in $SKIP_COLLECTION_METAPACKAGE_CHECK; do
|
|
||||||
rlLogInfo "ignoring metapackage check for collection $c"
|
|
||||||
export COLLECTIONS=$(shopt -s extglob && echo ${COLLECTIONS//$c/})
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
rlLogInfo "(without skipped) COLLECTIONS=$COLLECTIONS"
|
|
||||||
|
|
||||||
rlAssertRpm --all
|
|
||||||
|
|
||||||
export COLLECTIONS="$_COLLECTIONS"
|
|
||||||
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
rlRun "cp ldtest.S $TmpDir/"
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlRun "gcc -c -o ldtest.o ldtest.S"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "ld --oformat=binary -o ldtest.bin ldtest.o"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,64 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /tools/binutils/Regression/bz1243559-aarch64-binutils-relocation-truncated-to-fit
|
|
||||||
# Description: Test for BZ#1243559 ([aarch64][binutils] relocation truncated to fit)
|
|
||||||
# Author: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2016 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/.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/binutils/Regression/bz1243559-aarch64-binutils-relocation-truncated-to-fit
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE reproducer.c
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
test -x runtest.sh || chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Milos Prchlik <mprchlik@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Test for BZ#1243559 ([aarch64][binutils] relocation truncated to fit)" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "TestTime: 15m" >> $(METADATA)
|
|
||||||
@echo "RunFor: binutils" >> $(METADATA)
|
|
||||||
@echo "Requires: binutils gcc" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2+" >> $(METADATA)
|
|
||||||
@echo "Confidential: no" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 1243559" >> $(METADATA)
|
|
||||||
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,5 +0,0 @@
|
||||||
PURPOSE of /tools/binutils/Regression/bz1243559-aarch64-binutils-relocation-truncated-to-fit
|
|
||||||
Description: Test for BZ#1243559 ([aarch64][binutils] relocation truncated to fit)
|
|
||||||
Author: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
Bug summary: [aarch64][binutils] relocation truncated to fit: R_AARCH64_CALL26 (veneers not inserted)
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1243559
|
|
||||||
|
|
@ -1,15 +0,0 @@
|
||||||
summary: Test for BZ#1243559 ([aarch64][binutils] relocation truncated to fit)
|
|
||||||
description: |
|
|
||||||
Bug summary: [aarch64][binutils] relocation truncated to fit: R_AARCH64_CALL26 (veneers not inserted)
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1243559
|
|
||||||
contact: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
component:
|
|
||||||
- binutils
|
|
||||||
test: ./runtest.sh
|
|
||||||
framework: beakerlib
|
|
||||||
recommend:
|
|
||||||
- binutils
|
|
||||||
- gcc
|
|
||||||
duration: 15m
|
|
||||||
extra-summary: /tools/binutils/Regression/bz1243559-aarch64-binutils-relocation-truncated-to-fit
|
|
||||||
extra-task: /tools/binutils/Regression/bz1243559-aarch64-binutils-relocation-truncated-to-fit
|
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
void foo ();
|
|
||||||
int main () {foo();}
|
|
||||||
|
|
@ -1,74 +0,0 @@
|
||||||
#!/bin/bash
|
|
||||||
# vim: dict+=/usr/share/beakerlib/dictionary.vim cpt=.,w,b,u,t,i,k
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# runtest.sh of /tools/binutils/Regression/bz1243559-aarch64-binutils-relocation-truncated-to-fit
|
|
||||||
# Description: Test for BZ#1243559 ([aarch64][binutils] relocation truncated to fit)
|
|
||||||
# Author: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Copyright (c) 2016 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
|
|
||||||
|
|
||||||
PACKAGE="binutils"
|
|
||||||
PACKAGES="${PACKAGES:-binutils}"
|
|
||||||
REQUIRES="${REQUIRES:-}"
|
|
||||||
|
|
||||||
rlJournalStart
|
|
||||||
rlPhaseStartSetup
|
|
||||||
rlLogInfo "PACKAGES=$PACKAGES"
|
|
||||||
rlLogInfo "REQUIRES=$REQUIRES"
|
|
||||||
rlLogInfo "COLLECTIONS=$COLLECTIONS"
|
|
||||||
|
|
||||||
rlLogInfo "SKIP_COLLECTION_METAPACKAGE_CHECK=$SKIP_COLLECTION_METAPACKAGE_CHECK"
|
|
||||||
|
|
||||||
# We optionally need to skip checking for the presence of the metapackage
|
|
||||||
# because that would pull in all the dependent toolset subrpms. We do not
|
|
||||||
# always want that, especially in CI.
|
|
||||||
_COLLECTIONS="$COLLECTIONS"
|
|
||||||
if ! test -z $SKIP_COLLECTION_METAPACKAGE_CHECK; then
|
|
||||||
for c in $SKIP_COLLECTION_METAPACKAGE_CHECK; do
|
|
||||||
rlLogInfo "ignoring metapackage check for collection $c"
|
|
||||||
export COLLECTIONS=$(shopt -s extglob && echo ${COLLECTIONS//$c/})
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
|
|
||||||
rlLogInfo "(without skipped) COLLECTIONS=$COLLECTIONS"
|
|
||||||
|
|
||||||
rlAssertRpm --all
|
|
||||||
|
|
||||||
export COLLECTIONS="$_COLLECTIONS"
|
|
||||||
|
|
||||||
rlRun "TmpDir=\$(mktemp -d)" 0 "Creating tmp directory"
|
|
||||||
rlRun "cp reproducer.c $TmpDir/"
|
|
||||||
rlRun "pushd $TmpDir"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartTest
|
|
||||||
rlRun "gcc -Wl,--defsym=foo=0x80000000 -o reproducer reproducer.c"
|
|
||||||
rlPhaseEnd
|
|
||||||
|
|
||||||
rlPhaseStartCleanup
|
|
||||||
rlRun "popd"
|
|
||||||
rlRun "rm -r $TmpDir" 0 "Removing tmp directory"
|
|
||||||
rlPhaseEnd
|
|
||||||
rlJournalPrintText
|
|
||||||
rlJournalEnd
|
|
||||||
|
|
@ -1,66 +0,0 @@
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
#
|
|
||||||
# Makefile of /tools/binutils/Regression/bz1248929-ar-SEGFAULT-when-creating-static-library-with-lto
|
|
||||||
# Description: Test for BZ#1248929 (ar SEGFAULT when creating static library with lto)
|
|
||||||
# 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.
|
|
||||||
#
|
|
||||||
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
export TEST=/tools/binutils/Regression/bz1248929-ar-SEGFAULT-when-creating-static-library-with-lto
|
|
||||||
export TESTVERSION=1.0
|
|
||||||
|
|
||||||
BUILT_FILES=
|
|
||||||
|
|
||||||
FILES=$(METADATA) runtest.sh Makefile PURPOSE a.cpp
|
|
||||||
|
|
||||||
.PHONY: all install download clean
|
|
||||||
|
|
||||||
run: $(FILES) build
|
|
||||||
./runtest.sh
|
|
||||||
|
|
||||||
build: $(BUILT_FILES)
|
|
||||||
test -x runtest.sh || chmod a+x runtest.sh
|
|
||||||
|
|
||||||
clean:
|
|
||||||
rm -f *~ $(BUILT_FILES)
|
|
||||||
|
|
||||||
|
|
||||||
include /usr/share/rhts/lib/rhts-make.include
|
|
||||||
|
|
||||||
$(METADATA): Makefile
|
|
||||||
@echo "Owner: Milos Prchlik <mprchlik@redhat.com>" > $(METADATA)
|
|
||||||
@echo "Name: $(TEST)" >> $(METADATA)
|
|
||||||
@echo "TestVersion: $(TESTVERSION)" >> $(METADATA)
|
|
||||||
@echo "Path: $(TEST_DIR)" >> $(METADATA)
|
|
||||||
@echo "Description: Test for BZ#1248929 (ar SEGFAULT when creating static library with lto)" >> $(METADATA)
|
|
||||||
@echo "Type: Regression" >> $(METADATA)
|
|
||||||
@echo "TestTime: 15m" >> $(METADATA)
|
|
||||||
@echo "RunFor: binutils" >> $(METADATA)
|
|
||||||
@echo "Requires: binutils" >> $(METADATA)
|
|
||||||
@echo "Priority: Normal" >> $(METADATA)
|
|
||||||
@echo "License: GPLv2" >> $(METADATA)
|
|
||||||
@echo "Confidential: yes" >> $(METADATA)
|
|
||||||
@echo "Destructive: no" >> $(METADATA)
|
|
||||||
@echo "Bug: 1248929" >> $(METADATA)
|
|
||||||
@echo "Releases: -RHEL4 -RHELClient5 -RHELServer5" >> $(METADATA)
|
|
||||||
@echo "Architectures: x86_64" >> $(METADATA)
|
|
||||||
|
|
||||||
rhts-lint $(METADATA)
|
|
||||||
|
|
@ -1,8 +0,0 @@
|
||||||
PURPOSE of /tools/binutils/Regression/bz1248929-ar-SEGFAULT-when-creating-static-library-with-lto
|
|
||||||
Description: Test for BZ#1248929 (ar SEGFAULT when creating static library with lto)
|
|
||||||
Author: Milos Prchlik <mprchlik@redhat.com>
|
|
||||||
Bug summary: ar SEGFAULT when creating static library with lto
|
|
||||||
Bugzilla link: https://bugzilla.redhat.com/show_bug.cgi?id=1248929
|
|
||||||
|
|
||||||
Relevancy:
|
|
||||||
collection = devtoolset-4: PACKAGES=devtoolset-4-binutils REQUIRES=devtoolset-4-gcc
|
|
||||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue