1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
|
# remove tsan (thread sanitizer) plugin, not available for i686
pkgname=(
$(
printf '%s\n' "${pkgname[@]}" | \
grep -vFx 'lib32-gcc-libs'
)
)
unset -f 'package_lib32-gcc-libs'
eval "$(
declare -f prepare | \
sed '
\,/s/lib64/lib/, d
'
declare -f build | \
sed '
s/--enable-multilib/--disable-multilib/
'
declare -f package_gcc-libs | \
sed '
s/\$pkgname-multilib//
s@libsanitizer/{a,l,ub,t}san@libsanitizer/{a,l,ub}san@
/provides=/s/libtsan.so//
\@/usr/lib32/@ d
'
declare -f package_gcc | \
sed '
s/"lib32-gcc-libs[^"]*"//g
s@make.*tsan.*install@#\0@
'
declare -f package_gcc-ada | \
sed '
\,cd .*/32/libada,{
N
d
}
'
)"
eval "$(
for name in "${pkgname[@]}"; do
declare -f package_${name} | \
sed '
s/$pkgname-multilib//
s/{,32}//
\,/lib32/,d
\,/32/,d
'
done
)"
# fix bug url
eval "$(
declare -f build | \
sed '
s,--with-bugurl=https://bugs.archlinux.org/,--with-bugurl=https://bugs.archlinux32.org/,
'
)"
# i486-specific
if [ "${CARCH}" = "i486" ]; then
# disable doxygen documentation
makedepends=(${makedepends[@]//doxygen/})
eval "$(
declare -f build | \
sed '
/make.*doc-man-doxygen/d
'
)"
eval "$(
declare -f package_gcc | \
sed '
/make.*doc-man-doxygen/d
/make.*doc-install-man/d
'
)"
# no ADA
makedepends=(${makedepends[@]//gcc-ada/})
pkgname=(${pkgname[@]//gcc-ada/})
eval "$(
declare -f build | \
sed '
/enable-languages/ s/ada//
'
)"
eval "$(
declare -f package_gcc | \
sed '
s/,gnat-style,gnat_rm,gnat_ugn//
'
)"
# building toolchain (gcc): again, lobtool problems
# /usr/lib/gcc/i486-pc-linux-gnu/7.3.0/ld: cannot find -lquadmath
# collect2: error: ld returned 1 exit status
# libtool: install: error: relink `libgfortran.la' with the above command before installing it
# make: Leaving directory '/build/gcc/src/gcc-build/i486-pc-linux-gnu/libgfortran'
# => wrong link order: libgfortran requires libquadmath
eval "$(
declare -f package_gcc-libs | \
sed '
s/libgfortran/libquadmath libgfortran/
'
)"
# disable CET (Control Flow instructions endbr32/enbr64)
eval "$(
declare -f build | \
sed '
s/--enable-cet=auto/--disable-cet/
'
)"
fi
|