Skip to content

Commit 01257b3

Browse files
authored
Merge pull request #508 from fosslinux/binutils-regen
Binutils regenerations
2 parents c00fa39 + bf348d6 commit 01257b3

File tree

7 files changed

+273
-148
lines changed

7 files changed

+273
-148
lines changed

steps/SHA256SUMS.pkgs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ e8ff13753943e43972a8cf1672819f001718ed38e5497cf7b554c21a507ba22b automake-1.7.8
2222
c5807850a377e4bb9aa4121d9781d145bdd80327626a9419630a75ce2c8d9c71 automake-1.9.6_0.tar.bz2
2323
65427597c185f4a034525217cb108e004c8d2e2dfc824223d2b680e9db338d1c bash-5.2.15_0.tar.bz2
2424
7db49c9b024821d82d15afc0db2b1af8d89700101495a9cbadf471813ba5fa55 bc-1.07.1_0.tar.bz2
25-
5d777f774df7fb0153aa73b501c7fe1a57f152a3aa2c86e83a04e68b5df4f696 binutils-2.30_0.tar.bz2
25+
3be27e61642ea7d3d4d50a396ab0316ee66b3c469cd38a0a7600e92a9d5022d2 binutils-2.30_0.tar.bz2
2626
43bed356bf52b3d52ef62b63adbeb3bbd1e763e93d0ffd3edb5c75354842f171 binutils-2.41_0.tar.bz2
27-
7808e5290bf530cd7068e91642def059bc3341b628630d1fb2600590477187db binutils-2.41_1.tar.bz2
27+
33e192d498f8fb3015a6b5407f06946f1e1dfd575911377c4201bd4611c72a3f binutils-2.41_1.tar.bz2
2828
fa047f6dd4595be1bf8a9cc6ff492357f02fefa3bf1ad965c8c50c8e79a52478 bison-2.3_0.tar.bz2
2929
81554c867db75101422797d227dd76c8a12c87246393126542ff92a0b97db6c1 bison-3.4.1_0.tar.bz2
3030
f7437edc081071cc3ecd3384abf4c63f33183858b8cae6b4ac3105c66f88b3b6 bison-3.4.1_1.tar.bz2
@@ -55,7 +55,7 @@ ab8b5b92de4780b085d8bc7e98ee72ad5ba9c07b26690c579c559b5cc21817eb gc-8.0.4_0.tar
5555
073c34853a2a7d221028d77029105d91a81fc82c2000bc171880270ad69fb4ea gcc-13.3.0_0.tar.bz2
5656
64052d4b2ad1ac405455767b3ac09b77c31d90c38b1d69bfc0922902bd943a2d gcc-4.0.4_0.tar.bz2
5757
da88bb5900f33c1caca9180784e47367e64ec9f258182a147d84168540de1450 gcc-4.0.4_1.tar.bz2
58-
cbbc193d4bef0b9ac9e4ba0111009297da66bc65de12c9f07b14d3f0d3be9688 gcc-4.7.4_0.tar.bz2
58+
325206b9d09cba81929a13a9ef23058bca3f37a0a82341de15780952e6ea9538 gcc-4.7.4_0.tar.bz2
5959
6b5236819c5963d33dffa022142df70644dbc1960adcb4456017112cf9b79f5b gettext-0.21_0.tar.bz2
6060
309282ba840f80b5e10897b1221f3ff3329b9e05b982c788d03652f411974524 gmp-6.2.1_0.tar.bz2
6161
e89c5a38c49f2beb959e51732ff29bcf3652945e4f1c2bf70d39310c22b0c58f gperf-3.1_0.tar.bz2

steps/binutils-2.30/pass1.sh

Lines changed: 93 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,73 +1,123 @@
11
# SPDX-FileCopyrightText: 2022 Dor Askayo <[email protected]>
22
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <[email protected]>
33
# SPDX-FileCopyrightText: 2021 Paul Dersey <[email protected]>
4-
# SPDX-FileCopyrightText: 2023 fosslinux <[email protected]>
4+
# SPDX-FileCopyrightText: 2023,2025 fosslinux <[email protected]>
55
#
66
# SPDX-License-Identifier: GPL-3.0-or-later
77

8-
98
src_prepare() {
109
default
1110

1211
# Remove unused generated files
1312
rm etc/Makefile.in etc/configure
1413

15-
# Regenerate files
16-
for dir in bfd binutils gas gprof intl ld libiberty opcodes zlib; do
17-
(
18-
cd $dir
19-
AUTOPOINT=true ACLOCAL=aclocal-1.11 AUTOMAKE=automake-1.11 autoreconf-2.64 -fi
20-
)
21-
done
22-
23-
ACLOCAL=aclocal-1.11 autoreconf-2.64 -fi
24-
2514
# Rebuild bison files
2615
touch -- */*.y
27-
rm binutils/arparse.c binutils/arparse.h
28-
rm binutils/defparse.c binutils/defparse.h
29-
rm binutils/mcparse.c binutils/mcparse.h
30-
rm binutils/rcparse.c binutils/rcparse.h
31-
rm binutils/sysinfo.c binutils/sysinfo.h
32-
rm gas/bfin-parse.c gas/bfin-parse.h
33-
rm gas/m68k-parse.c gas/rl78-parse.c
34-
rm gas/rl78-parse.h gas/rx-parse.c
35-
rm gas/rx-parse.h gas/itbl-parse.c
36-
rm gas/itbl-parse.h gold/yyscript.c
37-
rm gold/yyscript.h intl/plural.c
38-
rm ld/deffilep.c ld/deffilep.h
39-
rm ld/ldgram.c ld/ldgram.h
16+
rm binutils/arparse.c binutils/arparse.h binutils/defparse.c \
17+
binutils/defparse.h binutils/mcparse.c binutils/mcparse.h \
18+
binutils/nlmheader.c binutils/rcparse.c binutils/rcparse.h \
19+
binutils/sysinfo.c binutils/sysinfo.h gas/bfin-parse.c \
20+
gas/bfin-parse.h gas/m68k-parse.c gas/rl78-parse.c gas/rl78-parse.h \
21+
gas/rx-parse.c gas/rx-parse.h gas/itbl-parse.c gas/itbl-parse.h \
22+
gold/yyscript.c gold/yyscript.h intl/plural.c ld/deffilep.c \
23+
ld/deffilep.h ld/ldgram.c ld/ldgram.h
4024

4125
# Rebuild flex generated files
4226
touch -- */*.l */*/*.l
43-
rm binutils/arlex.c binutils/deflex.c binutils/syslex.c
44-
rm gas/bfin-lex.c gas/itbl-lex.c
45-
rm ld/ldlex.c
27+
rm binutils/arlex.c binutils/deflex.c binutils/syslex.c gas/bfin-lex.c \
28+
gas/itbl-lex.c ld/ldlex.c
4629

47-
# Remove prebuilt texinfo files
30+
# Remove prebuilt documentation
4831
rm bfd/doc/bfd.info binutils/doc/binutils.info
4932
rm gas/doc/as.info gprof/gprof.info ld/ld.info
33+
rm */*.1 */*/*.1 */*/*.man
34+
rm libiberty/functions.texi
35+
36+
# Remove gettext translation files
37+
rm */po/*.gmo
5038

5139
# Remove pregenerated opcodes files
52-
rm opcodes/i386-init.h opcodes/i386-tbl.h
53-
rm opcodes/ia64-asmtab.c
54-
rm opcodes/z8k-opc.h
55-
rm opcodes/aarch64-asm-2.c opcodes/aarch64-opc-2.c opcodes/aarch64-dis-2.c
40+
rm opcodes/i386-init.h opcodes/i386-tbl.h opcodes/ia64-asmtab.c \
41+
opcodes/z8k-opc.h opcodes/aarch64-asm-2.c opcodes/aarch64-opc-2.c \
42+
opcodes/aarch64-dis-2.c
5643
rm $(grep -l 'MACHINE GENERATED' opcodes/*.c opcodes/*.h)
44+
rm include/opcode/riscv-opc.h
45+
46+
# Generated headers and blobs
47+
rm bfd/go32stub.h bfd/libbfd.h bfd/bfd-in2.h bfd/libcoff.h \
48+
ld/emultempl/spu_icache.o_c ld/emultempl/spu_ovl.o_c \
49+
gprof/fsf_callg_bl.c gprof/bsd_callg_bl.c gprof/flat_bl.c
50+
51+
# Generated testdata (xz-style attack vector)
52+
rm gas/testsuite/gas/sh/arch/*.s \
53+
gas/testsuite/gas/sh/arch/arch_expected.txt \
54+
ld/testsuite/ld-sh/arch/*.s \
55+
ld/testsuite/ld-sh/arch/arch_expected.txt \
56+
ld/testsuite/ld-versados/*.ro \
57+
gas/testsuite/gas/xstormy16/allinsn.sh \
58+
gas/testsuite/gas/tic4x/opcodes.s \
59+
binutils/testsuite/binutils-all/x86-64/pr22451.o.bz2
60+
61+
# Clean out zlib/
62+
rm zlib/contrib/masmx86/*.obj \
63+
zlib/contrib/infback9/inffix9.h \
64+
zlib/contrib/blast/test.pk \
65+
zlib/contrib/puff/zeros.raw \
66+
zlib/contrib/dotzlib/DotZLib.chm \
67+
zlib/crc32.h zlib/inffixed.h
68+
69+
# Regenerate crc table in libiberty/crc32.c
70+
cd libiberty
71+
sed -n '/^ #include <stdio.h>/,/^ \}$/p' crc32.c > crcgen.c
72+
tcc -o crcgen crcgen.c
73+
sed '/crc_v3\.txt/{n; q}' crc32.c > crc32.c.new
74+
./crcgen >> crc32.c.new
75+
sed '1,/^};$/d' crc32.c >> crc32.c.new
76+
mv crc32.c.new crc32.c
77+
cd ..
78+
79+
# bfd-in2.h is required to run autoreconf, but we don't have it yet
80+
cd bfd
81+
cp configure.ac configure.ac.bak
82+
sed -i "s/bfd-in3.h:bfd-in2.h //" configure.ac
83+
AUTOPOINT=true ACLOCAL=aclocal-1.11 AUTOMAKE=automake-1.11 autoreconf-2.64 -fi
84+
CC=tcc LD=true ./configure
85+
make headers
86+
mv configure.ac.bak configure.ac
87+
make distclean
88+
cd ..
89+
90+
# Regenerate files
91+
for dir in bfd binutils gas gprof gold intl ld libiberty opcodes zlib; do
92+
cd $dir
93+
AUTOPOINT=true ACLOCAL=aclocal-1.11 AUTOMAKE=automake-1.11 autoreconf-2.64 -fi
94+
cd ..
95+
done
96+
rm Makefile.in # autogen
97+
ACLOCAL=aclocal-1.11 autoreconf-2.64 -fi
98+
99+
# Rebuild dependencies in libiberty/Makefile.in
100+
cd libiberty
101+
CC=tcc ./configure --enable-maintainer-mode
102+
make maint-deps
103+
make distclean
104+
cd ..
57105

58106
# Regenerate MeP sections
59107
./bfd/mep-relocs.pl
60-
61-
# Manpages
62-
rm */*.1 */*/*.1 */*/*.man
63108
}
64109

65110
src_configure() {
66111
for dir in intl libiberty opcodes bfd binutils gas gprof ld zlib; do
67-
(
68112
cd $dir
69113

70-
LD="true" AR="tcc -ar" CC="tcc" ./configure \
114+
# BUILDFIXED=1 is specifically for zlib, to avoid needing to
115+
# regenerate inffixed.h. Instead, it generates the information from
116+
# it at runtime.
117+
# Similarly, DYANMIC_CRC_TABLE=1 for crc32.h.
118+
LD="true" AR="tcc -ar" CC="tcc" \
119+
CFLAGS="-DBUILDFIXED=1 -DDYNAMIC_CRC_TABLE=1" \
120+
./configure \
71121
--disable-nls \
72122
--enable-deterministic-archives \
73123
--enable-64-bit-bfd \
@@ -81,7 +131,7 @@ src_configure() {
81131
--srcdir=. \
82132
--enable-compressed-debug-sections=all \
83133
lt_cv_sys_max_cmd_len=32768
84-
)
134+
cd ..
85135
done
86136
}
87137

@@ -98,10 +148,8 @@ src_install() {
98148
done
99149

100150
# Create triplet symlinks
101-
(
102-
cd "${DESTDIR}${PREFIX}/bin"
103-
for f in *; do
104-
ln -s "${PREFIX}/bin/${f}" "i386-unknown-linux-musl-${f}"
105-
done
106-
)
151+
cd "${DESTDIR}${PREFIX}/bin"
152+
for f in *; do
153+
ln -s "${PREFIX}/bin/${f}" "i386-unknown-linux-musl-${f}"
154+
done
107155
}

steps/binutils-2.41/pass1.sh

Lines changed: 81 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# SPDX-FileCopyrightText: 2022 Dor Askayo <[email protected]>
22
# SPDX-FileCopyrightText: 2021 Andrius Štikonas <[email protected]>
33
# SPDX-FileCopyrightText: 2021 Paul Dersey <[email protected]>
4-
# SPDX-FileCopyrightText: 2023 fosslinux <[email protected]>
4+
# SPDX-FileCopyrightText: 2023,2025 fosslinux <[email protected]>
55
#
66
# SPDX-License-Identifier: GPL-3.0-or-later
77

@@ -11,66 +11,104 @@ src_prepare() {
1111

1212
# Remove unused generated files
1313
rm etc/Makefile.in etc/configure
14-
rm zlib/aclocal.m4 zlib/configure
1514

16-
# Remove gprofng
17-
rm -r gprofng
18-
19-
# Regenerate autoconf
20-
for dir in bfd binutils gas gold gprof intl ld libctf libiberty libsframe opcodes; do
21-
cd $dir
22-
AUTOPOINT=true ACLOCAL=aclocal-1.15 AUTOMAKE=automake-1.15 autoreconf-2.69 -fi
23-
cd ..
24-
done
25-
ACLOCAL=aclocal-1.15 autoreconf-2.69 -fi
26-
27-
# Regenerate directories with Makefile.am only
28-
pushd gold
29-
automake-1.15 -fai testsuite/Makefile
30-
popd
15+
# Remove unused parts
16+
rm -r gprofng zlib
3117

3218
# Rebuild bison files
3319
touch -- */*.y
34-
rm binutils/arparse.c binutils/arparse.h
35-
rm binutils/defparse.c binutils/defparse.h
36-
rm binutils/mcparse.c binutils/mcparse.h
37-
rm binutils/rcparse.c binutils/rcparse.h
38-
rm binutils/sysinfo.c binutils/sysinfo.h
39-
rm gas/config/bfin-parse.c gas/config/bfin-parse.h
40-
rm gas/config/loongarch-parse.c gas/config/loongarch-parse.h
41-
rm gas/config/m68k-parse.c gas/config/rl78-parse.c
42-
rm gas/config/rl78-parse.h gas/config/rx-parse.c
43-
rm gas/config/rx-parse.h gas/itbl-parse.c
44-
rm gas/itbl-parse.h gold/yyscript.c
45-
rm gold/yyscript.h intl/plural.c
46-
rm ld/deffilep.c ld/deffilep.h
47-
rm ld/ldgram.c ld/ldgram.h
20+
rm binutils/arparse.c binutils/arparse.h binutils/defparse.c \
21+
binutils/defparse.h binutils/mcparse.c binutils/mcparse.h \
22+
binutils/rcparse.c binutils/rcparse.h binutils/sysinfo.c \
23+
binutils/sysinfo.h gas/config/bfin-parse.c gas/config/bfin-parse.h \
24+
gas/config/loongarch-parse.c gas/config/loongarch-parse.h \
25+
gas/config/m68k-parse.c gas/config/rl78-parse.c \
26+
gas/config/rl78-parse.h gas/config/rx-parse.c gas/config/rx-parse.h \
27+
gas/itbl-parse.c gas/itbl-parse.h gold/yyscript.c gold/yyscript.h \
28+
intl/plural.c ld/deffilep.c ld/deffilep.h ld/ldgram.c ld/ldgram.h
4829

4930
# Rebuild flex generated files
5031
touch -- */*.l */*/*.l
51-
rm binutils/arlex.c binutils/deflex.c binutils/syslex.c
52-
rm gas/config/bfin-lex.c gas/config/loongarch-lex.c gas/itbl-lex.c
53-
rm ld/ldlex.c
32+
rm binutils/arlex.c binutils/deflex.c binutils/syslex.c \
33+
gas/config/bfin-lex.c gas/config/loongarch-lex.c gas/itbl-lex.c \
34+
ld/ldlex.c
5435

55-
# Remove prebuilt texinfo files
36+
# Remove prebuilt docs
5637
find . -type f -name '*.info*' \
5738
-not -wholename './binutils/sysroff.info' \
5839
-delete
40+
find . -type f \( -name '*.1' -or -name '*.man' \) -delete
41+
rm libiberty/functions.texi
42+
43+
# Remove gettext translation files
44+
find . -type f -name '*.gmo' -delete
5945

6046
# Remove pregenerated opcodes files
61-
rm opcodes/i386-init.h opcodes/i386-tbl.h opcodes/i386-mnem.h
62-
rm opcodes/ia64-asmtab.c
63-
rm opcodes/z8k-opc.h
64-
rm opcodes/aarch64-asm-2.c opcodes/aarch64-opc-2.c opcodes/aarch64-dis-2.c
47+
rm opcodes/i386-init.h opcodes/i386-tbl.h opcodes/i386-mnem.h \
48+
opcodes/ia64-asmtab.c opcodes/z8k-opc.h opcodes/aarch64-asm-2.c \
49+
opcodes/aarch64-opc-2.c opcodes/aarch64-dis-2.c \
50+
opcodes/msp430-decode.c opcodes/rl78-decode.c opcodes/rx-decode.c
6551
rm $(grep -l 'MACHINE GENERATED' opcodes/*.c opcodes/*.h)
6652

67-
rm libiberty/functions.texi
53+
# Various other blobs/generated headers
54+
rm ld/emultempl/*.o_c
55+
rm gprof/bsd_callg_bl.c gprof/flat_bl.c gprof/fsf_callg_bl.c
56+
rm bfd/libcoff.h bfd/libbfd.h bfd/go32stub.h bfd/bfd-in2.h
57+
58+
# Generated testsuite stuff (xz-style attack)
59+
rm libsframe/testsuite/libsframe.decode/DATA* \
60+
ld/testsuite/ld-x86-64/*.obj.bz2 ld/testsuite/ld-sh/arch/*.s \
61+
ld/testsuite/ld-sh/arch/arch_expected.txt \
62+
ld/testsuite/ld-i386/pr27193a.o.bz2 \
63+
gas/testsuite/gas/xstormy16/allinsn.sh \
64+
gas/testsuite/gas/tic4x/opcodes.s gas/testsuite/gas/sh/arch/*.s \
65+
gas/testsuite/gas/sh/arch/arch_expected.txt \
66+
binutils/testsuite/binutils-all/x86-64/pr22451.o.bz2 \
67+
binutils/testsuite/binutils-all/x86-64/pr26808.dwp.bz2 \
68+
binutils/testsuite/binutils-all/x86-64/pr27708.exe.bz2 \
69+
binutils/testsuite/binutils-all/nfp/*.nffw \
70+
binutils/testsuite/binutils-all/pr26112.o.bz2 \
71+
binutils/testsuite/binutils-all/pr26160.dwp.bz2
72+
73+
# Regenerate crc table in libiberty/crc32.c
74+
cd libiberty
75+
sed -n '/^ #include <stdio.h>/,/^ \}$/p' crc32.c > crcgen.c
76+
gcc -o crcgen crcgen.c
77+
sed '/crc_v3\.txt/{n; q}' crc32.c > crc32.c.new
78+
./crcgen >> crc32.c.new
79+
sed '1,/^};$/d' crc32.c >> crc32.c.new
80+
mv crc32.c.new crc32.c
81+
cd ..
82+
83+
# bfd-in2.h is required to run autoreconf, but we don't have it yet
84+
cd bfd
85+
cp configure.ac configure.ac.bak
86+
sed -i "s/bfd-in3.h:bfd-in2.h //" configure.ac
87+
AUTOPOINT=true ACLOCAL=aclocal-1.15 AUTOMAKE=automake-1.15 autoreconf-2.69 -fi
88+
./configure
89+
make headers
90+
mv configure.ac.bak configure.ac
91+
make distclean
92+
cd ..
93+
94+
# Regenerate autoconf
95+
for dir in bfd binutils gas gold gprof intl ld libctf libiberty libsframe opcodes; do
96+
cd $dir
97+
AUTOPOINT=true ACLOCAL=aclocal-1.15 AUTOMAKE=automake-1.15 autoreconf-2.69 -fi
98+
cd ..
99+
done
100+
rm Makefile.in # autogen
101+
ACLOCAL=aclocal-1.15 autoreconf-2.69 -fi
102+
103+
# Rebuild dependencies in libiberty/Makefile.in
104+
cd libiberty
105+
./configure --enable-maintainer-mode
106+
make maint-deps
107+
make distclean
108+
cd ..
68109

69110
# Regenerate MeP sections
70111
./bfd/mep-relocs.pl
71-
72-
# Manpages
73-
find . -type f \( -name '*.1' -or -name '*.man' \) -delete
74112
}
75113

76114
src_configure() {

0 commit comments

Comments
 (0)