On Sun, 26 Dec 2021 23:31:09 +0000 Jonathan Wakely <jwakely.gcc@xxxxxxxxx> wrote: > On Sun, 26 Dec 2021, 23:01 Fiodar Stryzhnoiu via Gcc-help, < > gcc-help@xxxxxxxxxxx> wrote: > > > I build baremetal crosscompiler for Symbian. That means no libc used in > > any way. For Symbian libc is usual library. It has two libc ports for now. > > > > Here build config: > > export TARGET=arm-none-symbianelf > > # Installation folder > > export GCCC=gcc-11.2.0 > > > > # needed enviroment-free statically linked GCC > > ICONV=--with-libiconv-prefix=/usr/local > > > > export PREFIX=/usr/local/$GCCC > > export PATH=$PATH:$PREFIX/bin > > unset CFLAGS > > export CFLAGS+="-pipe -Wl,-Bstatic" > > MAKEJOBS=-j"${NUMBER_OF_PROCESSORS}" > > #set SHELL=cmd.exe allow parallel build on windows > > set SHELL=cmd.exe > > > > cd build-gcc > > > > ../$GCCC/./configure --target=$TARGET --prefix=$PREFIX --without-headers > > \ > > --enable-languages="c,c++,lto" --enable-poison-system-directories \ > > --enable-lto --with-newlib --enable-long-long $ICONV \ > > --with-dwarf2 --enable-interwork --enable-tls --enable-multilib \ > > --disable-hosted-libstdcxx --disable-libstdcxx-pch \ > > --disable-option-checking --disable-threads --disable-nls \ > > --disable-win32-registry --disable-libssp --disable-shared \ > > --enable-wchar_t --enable-extra-sgxxlite-multilibs --enable-c99 \ > > --with-static-standard-libraries > > make $MAKEJOBS -k 2> make-gcc.log > > make -k install-strip 2> install-gcc.log > > > > Here full list warnings and error while build GCC for Symbian: > > > > 1. configure: WARNING: using in-tree isl, disabling version check(long > > ago, maybe even 5.4.0) > > > > This is not a problem. It's just telling you that it isn't doing a version > check. If you're using a suitable version of isl, there is no problem. > Using isl is completely optional anyway, you can build GCC without it. > > > > > 2. After several minutes build hang if "make -jX" used(long ago, maybe > > even 5.4.0). One make.exe uses cpu other don't. Build continues immediatly > > if right make killed. Windows itself response ok. Log before hang: > > > > This is unlikely to be a problem with GCC, it's more likely to be a bug in > Make on your OS. If it's a GCC process (or one of it's scripts like > fixincludes) which hangs then that would be a GCC problem. > > > 3. Many warnings for every file: > > ../../gcc-11.2.0/./gcc/mem-stats.h:215:72: warning: ISO C++11 does not > > support the 'I64' ms_printf length modifier [-Wformat=] > > get_percent (m_times, total.m_times), loc->m_ggc ? "ggc" : "heap"); > > > > ../../gcc-11.2.0/./gcc/pretty-print.h: In function 'void > > pp_wide_integer(pretty_printer*, long long int)': > > ../../gcc-11.2.0/./gcc/pretty-print.h:329:60: warning: ISO C++11 does not > > support the 'I64' ms_printf length modifier [-Wformat=] > > sprintf (pp_buffer (PP)->digit_buffer, FORMAT, SCALAR); \ > > > > ../../gcc-11.2.0/./gcc/alloc-pool.h:76:31: warning: ISO C++11 does not > > support the 'I64' ms_printf length modifier [-Wformat=] > > > > ../../gcc-11.2.0/./gcc/bitmap.h:252:34: warning: ISO C++11 does not > > support the 'I64' ms_printf length modifier [-Wformat=] > > > > ../../gcc-11.2.0/./gcc/lto-streamer.c:179:42: warning: ISO C++11 does not > > support the 'I64' ms_printf length modifier [-Wformat=] > > > > You can ignore those. > > 4. got build-gcc\mpfr\src\.libs\mpfr.a but has in logs: > > configure:14288: error: possibly undefined macro: AX_PTHREAD > > If this token and others are legitimate, please use m4_pattern_allow. > > See the Autoconf documentation. > > make[2]: *** [../../gcc-11.2.0/./mpfr/configure] Error 1 > > make[2]: Failed to remake makefile `Makefile'. > > libtool: warning: undefined symbols not allowed in i686-pc-mingw32 shared > > libraries; building static only > > make[1]: *** [all-mpfr] Error 2 > > make[1]: Target `all-host' not remade because of errors. > > make[1]: Target `all-target' not remade because of errors. > > make: *** [all] Error 2 > > > > 5. Another hang in libgcc if "make -jX": > > > > [...] > > 6. Bunch warnings and errors: > > /bin/install: cannot stat `crtfastmath.o': No such file or directory > > configure: WARNING: No native atomic operations are provided for this > > platform. > > configure: WARNING: They cannot be faked when thread support is disabled. > > configure: WARNING: Thread-safety of certain classes is not guaranteed. > > configure: WARNING: stdbool.h: present but cannot be compiled > > configure: WARNING: stdbool.h: check for missing prerequisite headers? > > configure: WARNING: stdbool.h: see the Autoconf documentation > > configure: WARNING: stdbool.h: section "Present But Cannot Be Compiled" > > configure: WARNING: stdbool.h: proceeding with the compiler's result > > configure: WARNING: stdalign.h: present but cannot be compiled > > configure: WARNING: stdalign.h: check for missing prerequisite headers? > > configure: WARNING: stdalign.h: see the Autoconf documentation > > configure: WARNING: stdalign.h: section "Present But Cannot Be > > Compiled" > > configure: WARNING: stdalign.h: proceeding with the compiler's result > > configure: error: computing EOF failed > > make[1]: *** [configure-target-libstdc++-v3] Error 1 > > make[1]: Target `all-target' not remade because of errors. > > make: *** [all] Error 2 > > > > 7. Errors for computing EOF, SEEK_CUR, and SEEK_END: > > checking for the value of EOF... configure: error: computing EOF failed > > make: *** [configure-target-libstdc++-v3] Error 1 > > Why they needed in bare metal compiler? > > > > You're doing a 3-stage bootstrap, so GCC needs a hosted libstdc++ to build > itself. I think only the final stage will be freestanding. Try > --disable-bootstrap to avoid that. That helps. Can't build libsupc++ at all. "make install-strip-target-libstdc++-v3" output: make[3]: Leaving directory `/d/mbuild/src/build-gcc/arm-none-symbianelf/v5te/softfp/libgcc' make[2]: Leaving directory `/d/mbuild/src/build-gcc/arm-none-symbianelf/libgcc' make[1]: Leaving directory `/d/mbuild/src/build-gcc/arm-none-symbianelf/libgcc' make[1]: Entering directory `/d/mbuild/src/build-gcc/arm-none-symbianelf/libstdc++-v3' make[1]: *** No rule to make target `install'. Stop. make[1]: Leaving directory `/d/mbuild/src/build-gcc/arm-none-symbianelf/libstdc++-v3' make: *** [install-target-libstdc++-v3] Error 2 ----- Фёдар Стрыжнёў(Fiodar Stryzhniou) <fedor_qd@xxxxxxx>