Π’Ρ‹ΡˆΠ»Π° сборка GNU toolchain c GCC 14.2.0 для Symbian

ПослС Π΄ΠΎΠ»Π³ΠΎΠ³ΠΎ ΠΈ тяТСлого Ρ‚Ρ€ΡƒΠ΄Π° Π²Ρ‹ΡˆΠ»Π° сборка GCC 14.2.0 Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π±Ρ‹Π»ΠΈ исправлСны ошибки сборки ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ ряд ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΠΉ. Π’ состав Ρ‚Π°ΠΊΠΆΠ΅ вошли Binutils 2.29.1 ΠΈ GDB 10.2.

Для Windows доступна Π² Π²ΠΈΠ΄Π΅ исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ², для сборки Π½Π° Linux-систСмах прилагаСтся bash-сцСнарий.

Π£Π»ΡƒΡ‡ΡˆΠ΅Π½ΠΈΡ:

  • ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° C++11 ΠΈ Π½ΠΎΠ²Π΅Π΅ Π² SDK;
  • ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ макрос ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΉ для Symbian: __SYMBIAN32__;
  • полная ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° common predefined macros Π² GCC;
  • Π½Π΅ экспортируСтся operator delete ( void* ptr, std::size_t sz ) noexcept;.

Для ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ соврСмСнных стандартов C++ Π² ΠΏΠ°ΠΏΠΊΠ΅ fixed_headers находятся Π΄Π²Π° Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΡ‡Π½Ρ‹Ρ… Ρ„Π°ΠΉΠ»Π°: gcce.h ΠΈ e32cmn.h. ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ ΠΊΠΎ всСм SDK Π½Π° Π±Π°Π·Π΅ Symbian 9, Π²Ρ‚ΠΎΡ€ΠΎΠΉ совмСстим лишь с нСсколькими SDK ΠΈ исходниками Symbian 3. Для установки слСдуСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ install_headers.py

ΠœΠ°ΠΊΡ€ΠΎΡ __SYMBIAN32__ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ для изоляции ΠΊΠΎΠ΄Π° ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΠΎΠ³ΠΎ для Symbian. По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ задаСтся систСмой сборки SDK ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΏΡ€Π°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ компилятора Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ другая систСма сборки. Π’Π΅ΠΏΠ΅Ρ€ΡŒ Π±ΡƒΠ΄Π΅Ρ‚ Π½Π΅ΠΌΠ½ΠΎΠ³ΠΎ Π»Π΅Π³Ρ‡Π΅ Ρ‚Π΅ΠΌ, ΠΊΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ систСмы сборки.

«The common predefined macros are GNU C extensions» Β©GCC ΠΌΠ°Π½ΡƒΠ°Π» – прСдоставлСн ΠΏΠΎΠ»Π½Ρ‹ΠΉ Π½Π°Π±ΠΎΡ€ макросов для Ρ‚ΠΈΠΏΠΎΠ² фиксированного Ρ€Π°Π·ΠΌΠ΅Ρ€Π°.

Π˜ΡΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΡ:

  • ошибка сборки GCC «crtfastmath.o Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½»;
  • Ρ‚Π°ΠΊΠΈ собрался freestanding libstdc++;
  • Ρ‚Π°ΠΊΠΈ собрался GDB.

Начиная с 5 вСрсии, GCC собирался Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ make -k, Π±Π΅Π· ΠΎΠ½ΠΎΠ³ΠΎ Π½Π°Ρ‡ΠΈΠ½Π°Π» Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒ crtfastmath.o, ΠΈ Π½Π° этом сборка Π·Π°ΠΊΠ°Π½Ρ‡ΠΈΠ²Π°Π»Π°ΡΡŒ. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ этот Ρ„Π°ΠΉΠ» Π½Π΅ компилируСтся для SOFTFP (Π² этом Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ всС Ρ€Π°Π²Π½ΠΎ – FPU Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ эмулирСмый!). Π‘ ΡƒΠΊΠ°Π·Π°Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ ΡΠΎΠ±ΠΈΡ€Π°Π»ΠΎΡΡŒ всС, ΠΊΡ€ΠΎΠΌΠ΅ freestanding libstdc++ ΠΈ GDB.

ΠšΠ°Ρ‡Π°Ρ‚ΡŒ здСсь.

Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru