failed check: gmp 32 bit build under solaris 10
Jay K
jay.krell at cornell.edu
Tue Nov 23 12:10:47 CET 2010
> (Does Sun's cc actually admit the -m32 flag? They used to ask for some
> very different flags, something zany like "-xarch=v8plus" for v9
> processors using the 32-bit ABI.)
>
> --
> Torbj?rn
Here's our autoconf-like code to pick flags for Sun cc.
It's in a language you've never seen and will never use but you can still figure it out.
This is meant to handle all of sparc32/sparc64/x86/amd64.
% newer compiler says:
% cc: Warning: -xarch=v8plus is deprecated, use -m32 -xarch=sparc instead
% cc: Warning: -xarch=v9 is deprecated, use -m64 to create 64-bit programs
% cc: Warning: -xarch=amd64 is deprecated, use -m64 to create 64-bit programs
% cc: Warning: -xarch=generic64 is deprecated, use -m64 to create 64-bit programs
%
% Probe for this and if found, use what it recommends.
% We presumably can't just always use the new syntax, in case
% we are using older tools that don't understand it.
local cc = "/usr/bin/cc -g -mt -xldscope=symbolic "
local old = "-xarch=" & SunXArch
local new = "-m" & WordSize
if equal(WORD_SIZE, "32BITS") and not equal(TARGET, "I386_SOLARIS")
new = new & " -xarch=sparc"
end
if equal(try_exec("@" & cc & old & " 2>&1 | fgrep \" " & new & " \" > /dev/null"), 0)
cc = cc & new
else
cc = cc & old
end
if equal(TARGET, "I386_SOLARIS") or equal(TARGET, "AMD64_SOLARIS")
SYSTEM_CC = cc & " -xF -Kpic"
else
SYSTEM_CC = cc & " -xF -xcode=pic32" % pic13 if not many external references
end
end
SunXArch is set before it runs, as follows:
jbook2:src jay$ grep SunXArch /dev2/cm3/m3-sys/cminstall/src/config-no-install/*
/dev2/cm3/m3-sys/cminstall/src/config-no-install/AMD64_SOLARIS:SunXArch = "generic64" % or amd64, equivalent?
/dev2/cm3/m3-sys/cminstall/src/config-no-install/I386_SOLARIS:SunXArch = "pentium_pro"
/dev2/cm3/m3-sys/cminstall/src/config-no-install/SPARC32_SOLARIS.common:SunXArch = "v8plus"
/dev2/cm3/m3-sys/cminstall/src/config-no-install/SPARC64_SOLARIS:SunXArch = "generic64" % or v9, equivalent?
/dev2/cm3/m3-sys/cminstall/src/config-no-install/Solaris.common: local old = "-xarch=" & SunXArch
This sort of deprecation bugs me.
Our command lines worked fine, and continue to do, with old and new compilers.
But now we get a warning.
I understand -m32/-m64 might be more readable.
But I also think they are too vague.
If I'm going to get specific like that, I should say -mx86 or -msparc32 or -mamd64 or -msparc64 or -mi686-linux or -target=amd64-solaris etc.
v8plus I think we needed to enable the various atomic instructions.
"32bit but with fairly new instructions, such as perhaps are available to 32bit code on 64bit processors??"
- Jay
More information about the gmp-bugs
mailing list