On Mon, 27 Dec 2021 13:34:52 +0300 Фёдар Стрыжнёў (Fiodar Stryzhniou) via Gcc-help <gcc-help@xxxxxxxxxxx> wrote: > 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> Any help, please? ----- Fiodar Stryzhnoiu <fedor_qd@xxxxxxx>