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
122
123
124
125
126
127
128
|
# remove lib32-* stuff
pkgname=(${pkgname[@]/lib32-*/})
makedepends=(${makedepends[@]/lib32-*/})
unset -f 'package_lib32-glibc'
eval "$(
declare -f build | \
sed '
2 a export CFLAGS="$CFLAGS -mno-tls-direct-seg-refs"
s,https://bugs.archlinux.org/,https://bugs.archlinux32.org/,
\,cd .*/lib32-glibc-build,{
s/.*/}/
q
}
s@--enable-multi-arch@--disable-multi-arch@
'
declare -f package_glibc | \
sed '
s,usr/lib/libmvec-\*\.so,,
s/\S*,mvec\S*//
s,STRIP_BINARIES ,\0usr/bin/lddlibc4 ,
s,STRIP_STATIC ,\0usr/lib/libm.a ,
'
)"
# 486-specific
# no gd for memory profiles
makedepends=(${makedepends[@]//gd/})
makedepends_i686+=('gd')
if [ "${CARCH}" = "i486" ]; then
# disable testing for now, we run out of memory
eval "$(
declare -f check | \
sed '
/make -O check/d
'
)"
# disable CET (Control Flow instructions endbr32/enbr64)
eval "$(
declare -f build | \
sed '
s/--enable-cet/--disable-cet/
'
)"
fi
# pentium4 specific
makedepends_pentium4=("${makedepends_i686[@]}")
# make Java segfaults go away
if [ "${CARCH}" = "pentium4" ]; then
eval "$(
declare -f build | \
sed '
/.*glibc.*configure.*/ i \
CFLAGS=\"${CFLAGS} -mfpmath=sse -msse2 -mstackrealign\" \
CXXFLAGS=\"${CXXFLAGS} -mfpmath=sse -msse2 -mstackrealign\"
'
)"
fi
# https://lwn.net/Articles/845329/, ISA-Level breakage in glibc 2.33
# disabling all ISA level guessing for now (see FS32#145)
eval "$(
declare -f build | \
sed '
s|--prefix=/usr|--prefix=/usr libc_cv_include_x86_isa_level=no|g
'
)"
# upstream test skipping breaks Makefiles in test, also glibc 2.25 currently fails
# in the following tests:
# FAIL: elf/tst-audit-tlsdesc
#FAIL: elf/tst-audit-tlsdesc-dlopen
#FAIL: elf/tst-gnu2-tls1
#FAIL: math/test-float-clog10
#FAIL: math/test-float32-clog10
#FAIL: misc/tst-bz21269
#FAIL: misc/tst-ntp_gettime
#FAIL: misc/tst-ntp_gettimex
#FAIL: time/tst-adjtime
#FAIL: time/tst-clock2
# the last once are exactly the once we had to patch, so we ignore this.
eval "$(
declare -f check | \
sed '
s/skip_test tst-ntp_gettimex/skip_test tst-ntp_gettimex-time64/
s/skip_test tst-ntp_gettime/skip_test tst-ntp_gettime-time64/
s/skip_test tst-adjtime/skip_test tst-adjtime-time64/
s/skip_test tst-clock2/skip_test tst-clock2-time64/
s/make -O check/make -O check || true/
'
)"
# have to rebuild twice because generate localdef called in build uses wrong
# ABI resulting in:
# "locale/localedef: /usr/lib/libc.so.6: version `GLIBC_ABI_DT_RELR' not found (required by locale/localedef"
# do not regenerate it and install the one from the chroot
eval "$(
declare -f build | \
sed '
/localedef/d
'
)"
eval "$(
declare -f package_glibc | \
sed '
s|"$srcdir/C.UTF-8"|/usr/lib/locale/C.UTF-8|g
'
)"
# readd locale generation removed by lib32 sed-fu above in build!
eval "$(
declare -f build | \
sed '
$ i locale/localedef -c -f ../glibc/localedata/charmaps/UTF-8 -i ../glibc/localedata/locales/C ../C.UTF-8/
'
)"
# ignoring tests for now
unset check
|