ARM GCC кросс-компилятор, десятичное число с плавающей запятой, не может эмулировать ‘SD / DD / TD’

Я хотел бы задать вопрос о кросс-компиляторе GCC для архитектуры ARM и о десятичных числах с плавающей запятой на основе стандарта ISO / IEC TR 24732, который реализован в <decimal/decimal> библиотека.

Я скомпилировал кросс-компилятор GCC для ARM, используя crosstool-ng с включенной поддержкой десятичного числа с плавающей точкой, используя флаг --enable-decimal-float=yes, Все прошло хорошо.

Но когда я пытаюсь скомпилировать тестовое приложение для моей цели (arm1176jzf-s), то я получаю ошибки, такие как:

unable to emulate 'SD'
unable to emulate 'DD'
unable to emulate 'TD'

Вот пример вывода из компилятора:

    /home/pajano/x-tools/arm-linaro-linux-gnueabi/arm-linaro-linux-gnueabi/include/c++/4.9.4/decimal/decimal:230:56: error: unable to emulate 'SD'
typedef float __decfloat32 __attribute__((mode(SD)));
^
/home/pajano/x-tools/arm-linaro-linux-gnueabi/arm-linaro-linux-gnueabi/include/c++/4.9.4/decimal/decimal:251:5: error: 'std::decimal::decimal32::decimal32(std::decimal::decimal32::__decfloat32)' cannot be overloaded
decimal32(__decfloat32 __z)   : __val(__z) {}
^
/home/pajano/x-tools/arm-linaro-linux-gnueabi/arm-linaro-linux-gnueabi/include/c++/4.9.4/decimal/decimal:238:14: error: with 'std::decimal::decimal32::decimal32(float)'
explicit decimal32(float __r)  : __val(__r) {}
^
/home/pajano/x-tools/arm-linaro-linux-gnueabi/arm-linaro-linux-gnueabi/include/c++/4.9.4/decimal/decimal:316:56: error: unable to emulate 'DD'
typedef float __decfloat64 __attribute__((mode(DD)));
^
/home/pajano/x-tools/arm-linaro-linux-gnueabi/arm-linaro-linux-gnueabi/include/c++/4.9.4/decimal/decimal:337:5: error: 'std::decimal::decimal64::decimal64(std::decimal::decimal64::__decfloat64)' cannot be overloaded
decimal64(__decfloat64 __z)   : __val(__z) {}
^
/home/pajano/x-tools/arm-linaro-linux-gnueabi/arm-linaro-linux-gnueabi/include/c++/4.9.4/decimal/decimal:324:14: error: with 'std::decimal::decimal64::decimal64(float)'
explicit decimal64(float __r)  : __val(__r) {}
^
/home/pajano/x-tools/arm-linaro-linux-gnueabi/arm-linaro-linux-gnueabi/include/c++/4.9.4/decimal/decimal:402:57: error: unable to emulate 'TD'
typedef float __decfloat128 __attribute__((mode(TD)));
^
...

Это простое тестовое приложение, которое я использую для теста. На х86 арка. это приложение компилируется без проблем:

#include <stdio>
#include <iostream>
#include <decimal/decimal>

using namespace std;

int main(int argc, char *argv[])
{
decimal::decimal32 total;
decimal::decimal32 nom = decimal::decimal32(0.1);
int quantity = 10;
total = decimal::decimal32(nom*quantity);
return 0;
}

Так что если здесь есть кто-нибудь, кто может помочь избавиться от этих ошибок, я буду рад любой помощи.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector