summaryrefslogtreecommitdiff
path: root/core/glibc/PKGBUILD
blob: 07f6e51fd6b63d4bc64f12794a3b21877054d835 (plain)
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
# remove lib32-* stuff

pkgname=(${pkgname[@]/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/
    '
)"

# readd C.UTF-8 locale generate with the removed lib32 sed above
eval "$(
  declare -f build | \
    sed '
      $ i \
      locale/localedef -c -f ../glibc/localedata/charmaps/UTF-8 -i ../glibc/localedata/locales/C ../C.UTF-8/
    '
)"