[gmp] [powerpc] GMP build is broken because asm {...} syntax has been removed from latest toolchains

Torbjorn Granlund tg at gmplib.org
Sun Oct 21 17:34:16 CEST 2012


Segher Boessenkool <segher at kernel.crashing.org> writes:

  Support for old POWER was obsoleted in GCC-4.5: http://gcc.gnu.org/
  gcc-4.5/changes.html
  
A fact which might seem relevant here, but is actually not really.

This GCC change breaks GMP for any 32-bit PowerPC target.  Furthermore,
just because GCC 4.8 will not support POWER, doesn't mean that there are
no programs out there which might continue supporting POWER (with old
GCC).

  > One might argue that the current GCC inline asm feature is
  > unfortunate,
  > as it exposes GCC internals.  That in turn forces a certain level of
  > conservatism on GCC development.
  
  Yes.  Ideally, programs shouldn't use asm features (register
  constraints, output modifiers) that aren't documented.  And we (GCC)
  shouldn't document those that we consider internal use only in user
  documentation.

This hasn't really been documented.  If I'd only used documented flags,
then I couldn't have written longlong.h.

  Is the GMP version of longlong.h synched with the GCC version?
  
I think they are quite diverged by now.  Unfortunately, the GMP version
has become slightly unportable, using some GMPisms.  The GMP variant of
the file will probably be part of the next major coreutils release.

I tried moving towards using more __builtin_blah as in the GCC
longlong.h, since that avoids blindfolding the compiler.  Unfortunately,
I had to back things out again, since I got libcalls in many cases
critical to GMP, even with the then latest GCC.  I didn't have time to
fix GCC.

-- 
Torbjörn


More information about the gmp-bugs mailing list