Skip to content

Commit 6962257

Browse files
Add libstdc++-nox build target
1 parent afa275d commit 6962257

File tree

1 file changed

+17
-7
lines changed

1 file changed

+17
-7
lines changed

build

Lines changed: 17 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ install()
7272
echo "-------- Copying GCC libs"
7373
cp ${installnative}/lib/gcc/xtensa-lx106-elf/*/libgcc.a ${arduino}/tools/sdk/lib/.
7474
cp ${installnative}/xtensa-lx106-elf/lib/libstdc++.a ${arduino}/tools/sdk/lib/.
75+
cp ${installnative}/xtensa-lx106-elf/lib/libstdc++-nox.a ${arduino}/tools/sdk/lib/.
7576
echo "-------- Copying toolchain directory"
7677
rm -rf ${arduino}/tools/sdk/xtensa-lx106-elf
7778
cp -a ${installnative}/xtensa-lx106-elf ${arduino}/tools/sdk/xtensa-lx106-elf
@@ -265,12 +266,11 @@ if [ ! -r arena/binutils/jobdone ]; then
265266
mkdir -p arena/binutils
266267
(cd arena/binutils; ../../dl/binutils-gdb-xtensa/configure ${configure}) &> $log.01.binutils.conf.log
267268
(cd arena/binutils; make ${make}) &> $log.02.binutils.make.log
269+
(cd arena/binutils; make install) &> $log.03.binutils.install.log
270+
# add/fix link cc->gcc
271+
(cd ${install}/bin; ln -sf xtensa-lx106-elf-gcc${EXE} xtensa-lx106-elf-cc${EXE})
268272
touch arena/binutils/jobdone
269273
fi
270-
(cd arena/binutils; make install) &> $log.03.binutils.install.log
271-
272-
# add/fix link cc->gcc
273-
(cd ${install}/bin; ln -sf xtensa-lx106-elf-gcc${EXE} xtensa-lx106-elf-cc${EXE})
274274

275275
if [ ! -r arena/gcc/jobdone-stage1 ]; then
276276
echo "-------- gcc-stage1"
@@ -288,28 +288,38 @@ if [ ! -r arena/gcc/jobdone-newlib ]; then
288288
mkdir -p arena/newlib
289289
(cd arena/newlib; ../../dl/newlib-xtensa/configure ${configurenewlib}) &> $log.06.newlib.conf.log
290290
(cd arena/newlib; CROSS_CFLAGS="-DSIGNAL_PROVIDED -DABORT_PROVIDED -DMALLOC_PROVIDED" make ${make}) &> $log.07.newlib.make.log
291+
(cd arena/newlib; make install) &> $log.08.newlib.install.log
291292
touch arena/gcc/jobdone-newlib
292293
fi
293-
(cd arena/newlib; make install) &> $log.08.newlib.install.log
294294

295295

296296
if [ ! -r arena/gcc/jobdone-stage2 ]; then
297297
echo "-------- gcc-stage2"
298298
# stage 2 (build libstdc++)
299299
(cd arena/gcc; make ${make}) &> $log.09.gcc.stage2.log
300+
(cd arena/gcc; make install) &> $log.10.gcc.install.log
300301
touch arena/gcc/jobdone-stage2
301302
fi
302-
(cd arena/gcc; make install) &> $log.10.gcc.install.log
303+
304+
if [ ! -r arena/gcc/jobdone-nox ]; then
305+
echo "-------- gcc-stage3 - noexceptions"
306+
# We copy existing stdc, adjust the makefile, and build a single .a to save much time
307+
rm -rf arena/gcc/xtensa-lx106-elf/libstdc++-v3-nox
308+
cp -a arena/gcc/xtensa-lx106-elf/libstdc++-v3 arena/gcc/xtensa-lx106-elf/libstdc++-v3-nox
309+
(cd arena/gcc/xtensa-lx106-elf/libstdc++-v3-nox; make clean; find . -name Makefile -exec sed -i 's/mlongcalls/mlongcalls -fno-exceptions/' \{\} \; ; make ${make}; ) >& $log.10a.gcc.nox.log
310+
(cp arena/gcc/xtensa-lx106-elf/libstdc++-v3-nox/src/.libs/libstdc++.a xtensa-lx106-elf${EXT}/xtensa-lx106-elf/lib/libstdc++-nox.a) >& $log.10a.gcc.nox.log
311+
touch arena/gcc/jobdone-nox
312+
fi
303313

304314
if [ ! -r arena/hal/jobdone ]; then
305315
echo "-------- HAL"
306316
mkdir -p arena/hal
307317
(cd dl/lx106-hal; autoreconf -i) &> $log.11.hal.boostrap.log
308318
(cd arena/hal; ../../dl/lx106-hal/configure --host=xtensa-lx106-elf $(echo ${configure} | sed 's/--host=[a-zA-Z0-9_-]*//')) &> $log.12.hal.conf.log
309319
(cd arena/hal; make ${make}) &> $log.14.hal.make.log
320+
(cd arena/hal; make install) &> $log.15.hal.install.log
310321
touch arena/hal/jobdone
311322
fi
312-
(cd arena/hal; make install) &> $log.15.hal.install.log
313323

314324
echo "-------- Stripping binaries"
315325
(${HOST}-strip ${install}/bin/* ${install}/libexec/gcc/xtensa-lx106-elf/*/c* ${install}/libexec/gcc/xtensa-lx106-elf/*/lto1 || true) >& $log.16.strip.log

0 commit comments

Comments
 (0)