Unable to compile sparc32 version of openbios with gcc 4.x
Hi, I am unable to compile openbios for sparc32 (on a sparc64 host) using gcc 4.x (tested with 4.0, 4.2 and 4.3), it looks like it does not like the TI mode and the __uint128_t type: | libgcc/libgcc.h:14: error: unable to emulate ‘TI’ | libgcc/libgcc.h:18: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__udivmodti4’ | libgcc/libgcc.h:22: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__divti3’ | libgcc/libgcc.h:23: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__udivti3’ | libgcc/libgcc.h:26: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘__umodti3’ Anyone as an idea of a fix? Thanks, Aurelien -- .''`. Aurelien Jarno | GPG: 1024D/F1BCDB73 : :' : Debian developer | Electrical Engineer `. `' aurel32@debian.org | aurelien@aurel32.net `- people.debian.org/~aurel32 | www.aurel32.net
On 11/3/08, Aurelien Jarno <aurelien@aurel32.net> wrote:
Hi,
I am unable to compile openbios for sparc32 (on a sparc64 host) using gcc 4.x (tested with 4.0, 4.2 and 4.3), it looks like it does not like the TI mode and the __uint128_t type:
| libgcc/libgcc.h:14: error: unable to emulate 'TI' | libgcc/libgcc.h:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__udivmodti4' | libgcc/libgcc.h:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__divti3' | libgcc/libgcc.h:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__udivti3' | libgcc/libgcc.h:26: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__umodti3'
Anyone as an idea of a fix?
It looks like GCC 4 does not provide TI (128 bit) types anymore. But the types are only needed for Sparc64, so we can disable these prototypes for now.
On 11/4/08, Blue Swirl <blauwirbel@gmail.com> wrote:
On 11/3/08, Aurelien Jarno <aurelien@aurel32.net> wrote:
Hi,
I am unable to compile openbios for sparc32 (on a sparc64 host) using gcc 4.x (tested with 4.0, 4.2 and 4.3), it looks like it does not like the TI mode and the __uint128_t type:
| libgcc/libgcc.h:14: error: unable to emulate 'TI' | libgcc/libgcc.h:18: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__udivmodti4' | libgcc/libgcc.h:22: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__divti3' | libgcc/libgcc.h:23: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__udivti3' | libgcc/libgcc.h:26: error: expected '=', ',', ';', 'asm' or '__attribute__' before '__umodti3'
Anyone as an idea of a fix?
It looks like GCC 4 does not provide TI (128 bit) types anymore. But the types are only needed for Sparc64, so we can disable these prototypes for now.
Should be fixed in r254. Thanks for reporting.
participants (2)
-
Aurelien Jarno -
Blue Swirl