@@ -7,6 +7,7 @@ declare -r workdir="${PWD}"
7
7
declare -r revision=" $( git rev-parse --short HEAD) "
8
8
9
9
declare -r toolchain_directory=' /tmp/raiden'
10
+ declare -r share_directory=" ${toolchain_directory} /usr/local/share/raiden"
10
11
11
12
declare -r gmp_tarball=' /tmp/gmp.tar.xz'
12
13
declare -r gmp_directory=' /tmp/gmp-6.3.0'
@@ -18,47 +19,17 @@ declare -r mpc_tarball='/tmp/mpc.tar.gz'
18
19
declare -r mpc_directory=' /tmp/mpc-1.3.1'
19
20
20
21
declare -r binutils_tarball=' /tmp/binutils.tar.xz'
21
- declare -r binutils_directory=' /tmp/binutils-2.43 '
22
+ declare -r binutils_directory=' /tmp/binutils-with-gold-2.44 '
22
23
23
- declare gcc_directory=' '
24
+ declare -r gcc_tarball=' /tmp/gcc.tar.xz'
25
+ declare -r gcc_directory=' /tmp/gcc-master'
24
26
25
27
declare -r sysroot_tarball=' /tmp/sysroot.tar.xz'
26
28
27
- function setup_gcc_source() {
28
-
29
- local gcc_version=' '
30
- local gcc_url=' '
31
- local gcc_tarball=' '
32
- local tgt=" ${1} "
33
-
34
- declare -r tgt
35
-
36
- gcc_version=' 14'
37
- gcc_directory=' /tmp/gcc-14.2.0'
38
- gcc_url=' https://ftp.gnu.org/gnu/gcc/gcc-14.2.0/gcc-14.2.0.tar.xz'
39
-
40
- gcc_tarball=" /tmp/gcc-${gcc_version} .tar.xz"
41
-
42
- declare -r gcc_version
43
- declare -r gcc_url
44
- declare -r gcc_tarball
45
-
46
- if ! [ -f " ${gcc_tarball} " ]; then
47
- wget --no-verbose " ${gcc_url} " --output-document=" ${gcc_tarball} "
48
- tar --directory=" $( dirname " ${gcc_directory} " ) " --extract --file=" ${gcc_tarball} "
49
- fi
50
-
51
- [ -d " ${gcc_directory} /build" ] || mkdir " ${gcc_directory} /build"
52
-
53
- sed --in-place ' s/LDBL_MANT_DIG == 113/defined(__powerpc__) || defined(__powerpc64__) || defined(__s390x__)/g' " ${gcc_directory} /libgcc/dfp-bit.h"
54
- sed --in-place ' s/soft-fp.h/this-does-not-exist.h/g' " ${gcc_directory} /libquadmath/math/sqrtq.c"
55
-
56
- }
57
-
58
- declare -r optflags=' -Os'
29
+ declare -r optflags=' -w -Os'
59
30
declare -r linkflags=' -Wl,-s'
60
31
61
- declare -r max_jobs=" $(( $(nproc) * 17 )) "
32
+ declare -r max_jobs=" $(( $(nproc) * 10 )) "
62
33
63
34
declare build_type=" ${1} "
64
35
@@ -98,10 +69,24 @@ if ! [ -f "${mpc_tarball}" ]; then
98
69
fi
99
70
100
71
if ! [ -f " ${binutils_tarball} " ]; then
101
- wget --no-verbose ' https://ftp.gnu.org/gnu/binutils/binutils-2.43 .tar.xz' --output-document=" ${binutils_tarball} "
72
+ wget --no-verbose ' https://ftp.gnu.org/gnu/binutils/binutils-with-gold-2.44 .tar.xz' --output-document=" ${binutils_tarball} "
102
73
tar --directory=" $( dirname " ${binutils_directory} " ) " --extract --file=" ${binutils_tarball} "
103
74
104
- patch --directory=" ${binutils_directory} " --strip=' 1' --input=" ${workdir} /patches/0001-Revert-gold-Use-char16_t-char32_t-instead-of-uint16_.patch"
75
+ patch --directory=" ${binutils_directory} " --strip=' 1' --input=" ${workdir} /submodules/obggcc/patches/0001-Revert-gold-Use-char16_t-char32_t-instead-of-uint16_.patch"
76
+ patch --directory=" ${binutils_directory} " --strip=' 1' --input=" ${workdir} /submodules/obggcc/patches/0001-Disable-annoying-linker-warnings.patch"
77
+ fi
78
+
79
+ if ! [ -f " ${gcc_tarball} " ]; then
80
+ wget --no-verbose ' https://github.com/gcc-mirror/gcc/archive/refs/heads/master.tar.gz' --output-document=" ${gcc_tarball} "
81
+ tar --directory=" $( dirname " ${gcc_directory} " ) " --extract --file=" ${gcc_tarball} "
82
+
83
+ patch --directory=" ${gcc_directory} " --strip=' 1' --input=" ${workdir} /submodules/obggcc/patches/0001-Fix-libgcc-build-on-arm.patch"
84
+ patch --directory=" ${gcc_directory} " --strip=' 1' --input=" ${workdir} /submodules/obggcc/patches/0001-Change-the-default-language-version-for-C-compilatio.patch"
85
+ patch --directory=" ${gcc_directory} " --strip=' 1' --input=" ${workdir} /submodules/obggcc/patches/0001-Turn-Wimplicit-int-back-into-an-warning.patch"
86
+ patch --directory=" ${gcc_directory} " --strip=' 1' --input=" ${workdir} /submodules/obggcc/patches/0001-Turn-Wint-conversion-back-into-an-warning.patch"
87
+ patch --directory=" ${gcc_directory} " --strip=' 1' --input=" ${workdir} /submodules/obggcc/patches/0001-Revert-GCC-change-about-turning-Wimplicit-function-d.patch"
88
+ patch --directory=" ${gcc_directory} " --strip=' 1' --input=" ${workdir} /patches/0001-Fix-libgcc-build-on-musl.patch"
89
+ patch --directory=" ${gcc_directory} " --strip=' 1' --input=" ${workdir} /patches/0001-Fix-libquadmath-build-on-musl.patch"
105
90
fi
106
91
107
92
[ -d " ${gmp_directory} /build" ] || mkdir " ${gmp_directory} /build"
@@ -147,24 +132,21 @@ cd "${mpc_directory}/build"
147
132
--enable-shared \
148
133
--enable-static \
149
134
${cross_compile_flags} \
150
- CFLAGS=" ${optflags} -fpermissive " \
135
+ CFLAGS=" ${optflags} " \
151
136
CXXFLAGS=" ${optflags} " \
152
137
LDFLAGS=" ${linkflags} "
153
138
154
139
make all --jobs
155
140
make install
156
141
157
142
declare -ra targets=(
158
- # 'powerpc -unknown-linux-musl '
159
- ' s390x -unknown-linux-musl '
143
+ ' arm -unknown-linux-musleabihf '
144
+ ' armv7l -unknown-linux-musleabihf '
160
145
' powerpc64le-unknown-linux-musl'
161
- # 'mips-unknown-linux-musl'
162
- # 'mipsel-unknown-linux-musl'
146
+ ' s390x-unknown-linux-musl'
163
147
' mips64-unknown-linux-musl'
164
- ' armv7l-unknown-linux-musleabihf'
165
148
' x86_64-unknown-linux-musl'
166
149
' aarch64-unknown-linux-musl'
167
- ' arm-unknown-linux-musleabihf'
168
150
' riscv64-unknown-linux-musl'
169
151
' i386-unknown-linux-musl'
170
152
)
@@ -210,8 +192,6 @@ for target in "${targets[@]}"; do
210
192
make all --jobs
211
193
make install
212
194
213
- setup_gcc_source " ${triplet} "
214
-
215
195
[ -d " ${gcc_directory} /build" ] || mkdir " ${gcc_directory} /build"
216
196
217
197
cd " ${gcc_directory} /build"
@@ -226,7 +206,7 @@ for target in "${targets[@]}"; do
226
206
--with-mpc=" ${toolchain_directory} " \
227
207
--with-mpfr=" ${toolchain_directory} " \
228
208
--with-bugurl=' https://github.com/AmanoTeam/Raiden/issues' \
229
- --with-pkgversion=" Raiden v0.6 -${revision} " \
209
+ --with-pkgversion=" Raiden v0.7 -${revision} " \
230
210
--with-sysroot=" ${toolchain_directory} /${triplet} " \
231
211
--with-gcc-major-version-only \
232
212
--with-native-system-header-dir=' /include' \
@@ -241,14 +221,15 @@ for target in "${targets[@]}"; do
241
221
--enable-link-serialization=' 1' \
242
222
--enable-linker-build-id \
243
223
--enable-lto \
244
- --enable-plugin \
245
224
--enable-shared \
246
225
--enable-threads=' posix' \
247
226
--enable-ld \
248
227
--enable-gold \
249
228
--enable-languages=' c,c++' \
250
- --disable-gnu-unique-object \
229
+ --disable-plugin \
251
230
--disable-libsanitizer \
231
+ --disable-fixincludes \
232
+ --disable-gnu-unique-object \
252
233
--disable-symvers \
253
234
--disable-sjlj-exceptions \
254
235
--disable-target-libiberty \
@@ -264,7 +245,7 @@ for target in "${targets[@]}"; do
264
245
libat_cv_have_ifunc=no \
265
246
CFLAGS=" ${optflags} " \
266
247
CXXFLAGS=" ${optflags} " \
267
- LDFLAGS=" -Wl,-rpath-link, ${OBGGCC_TOOLCHAIN} / ${CROSS_COMPILE_TRIPLET} /lib ${linkflags} "
248
+ LDFLAGS=" ${linkflags} "
268
249
269
250
LD_LIBRARY_PATH=" ${toolchain_directory} /lib" PATH=" ${PATH} :${toolchain_directory} /bin" make \
270
251
CFLAGS_FOR_TARGET=" ${optflags} ${linkflags} " \
@@ -279,10 +260,11 @@ for target in "${targets[@]}"; do
279
260
ln --symbolic " ../../bin/${triplet} -${name} " " ${name} "
280
261
done
281
262
282
- rm --recursive " ${toolchain_directory} /share"
283
- rm --recursive " ${toolchain_directory} /lib/gcc/${triplet} /" * " /include-fixed"
284
-
285
263
patchelf --add-rpath ' $ORIGIN/../../../../lib' " ${toolchain_directory} /libexec/gcc/${triplet} /" * " /cc1"
286
264
patchelf --add-rpath ' $ORIGIN/../../../../lib' " ${toolchain_directory} /libexec/gcc/${triplet} /" * " /cc1plus"
287
265
patchelf --add-rpath ' $ORIGIN/../../../../lib' " ${toolchain_directory} /libexec/gcc/${triplet} /" * " /lto1"
288
266
done
267
+
268
+ mkdir --parent " ${share_directory} "
269
+
270
+ cp --recursive " ${workdir} /tools/dev/" * " ${share_directory} "
0 commit comments