我使用的軟件沒有FPU的嵌入式系統。我希望能夠在我的桌面上使用軟件浮點庫構建此軟件,以獲得更實際的性能視圖。有沒有人有關於如何實現這一目標的任何想法?x86_64上的Soft Float
到目前爲止,我還沒有取得很大的進展,使用gcc的-msoft-float
。我目前正在使用clang。通過使用標誌-Xclang -msoft-float -Xclang -no-implicit-float
並指定一個具有軟浮點例程實現的庫,我可以讓我的應用程序進行編譯。當我嘗試運行它時,它總是出現段錯誤。盡我所知,這是因爲這個程序所依賴的庫沒有用soft-float編譯。該應用程序依賴於gtk,sqlite,expat,gcrypt,一些內部庫和libc。
我想試圖弄清楚如何構建一個完整的軟構建支持的環境。我嘗試了uclibc的buildroot,並將CC
和CXX
設置爲clang的二進制文件,但由於編譯gcc工具鏈(諸如autotools抱怨編譯器版本不正確等)的要求,此操作無效。因爲我想在新的buildroot中使用clang作爲編譯器(爲了實現soft-float支持),所以我沒有看到構建gcc的迫切需要。沒有gcc可以做到這一點嗎?
我覺得這是在不改變代碼是不可能的,因爲'x86_64' ABI需要'xmm'寄存器存在。也許有一些'-Double = mpfr :: real'的技巧會使用'gcc'所需的'mpfr'庫。 – hirschhornsalz
如上所述,'clang'能夠編譯一個二進制文件而不涉及浮點指令或寄存器。我想我的真正問題是如果有一種方法可以使用這樣的東西來製作整個工具鏈。 –
建議的解決方案可以嗎? –