#20563: Cannot compile SnapPy for sage because sage's gcc is incompatible with
system's as
-------------------------------------+-------------------------------------
Reporter: mgoerner | Owner:
Type: defect | Status: new
Priority: major | Milestone: sage-7.2
Component: porting | Resolution:
Keywords: | Merged in:
Authors: | Reviewers:
Report Upstream: N/A | Work issues:
Branch: | Commit:
u/mgoerner/binutils2.24 | afbe56b320454d496e82bf62d1a8efda15aededc
Dependencies: | Stopgaps:
-------------------------------------+-------------------------------------
Comment (by leif):
Which instructions GCC emits depends on how you configure it during the
build `--build=...`, `--with-arch-32=...`, `--with-arch-64=...`) and of
course which options you pass to it at runtime when compiling other things
with it (`-march=...`, `-mFOO` or `-mno-FOO`). In practice, usually only
a subset of the instructions "allowed" by the latter is used unless you
ask for higher optimization levels (`-O2`, `-O3`).
At runtime, GCC of course doesn't check whether ''the assembler'' supports
the instructions it emits. (`-march=native` just checks what features
''the CPU'' supports, partially influenced by the operating system or VM.)
The `vmovd` vs. `vmovq` is pretty different; we could easily patch Sage's
GCC on MacOS X for older versions (i.e., ancient Apple assemblers), and/or
configure GCC to use clang's assembler by default when available.
For instruction set extensions like SSE2 on 32-bit or AVX on 64-bit CPUs,
it's up to a package to make sure they're supported (by the assembler and
the CPU) before enabling them, and to disable them in case of misleadingly
so-called "fat binary" builds (we use for binary distributions of Sage).
AFAIK, GMP and MPIR are the only packages which build real "fat" binaries
(where different code is selected ''at runtime'', based on the actual
CPU).
TL;DR: I think we don't have to ship binutils or `gas` as well.
--
Ticket URL:
<https://u3351942.ct.sendgrid.net/wf/click?upn=aTs-2BwUSKwq20U-2FVxpZle9V7rZPHNFdCZn9IqCcBPbg4VPscbCFEqILQBvjLlhfyUStylyiTeoeMu2PjF1Eluyg-3D-3D_gXX0YPkjCa6kfMda2NWALp0MQ-2FOvmULrxPdhd2nGLCZVyXGBqR90v8naSSvJDVrImuXHJ1j60ONW3Py44QDNHP1cYOPAFUkm2EYA9YEDAUk7HPPexk4zyJ9PGdAB2QYranV-2Bkg-2FCTWU8zO-2Fo-2FHhM5ICIB6ceuvu8UsLEg5YZbVI5dcyY7l229Kqa11I9d1N5277DDJOO-2FoYs4-2FgvZdlZxTG-2Bte-2FGQu55-2FZ1DI9MQiqE-3D>
Sage
<https://u3351942.ct.sendgrid.net/wf/click?upn=jm4cvpnHFskDUI5PLE4HCGcqpDNkng8vhBVTwprYF6Q-3D_gXX0YPkjCa6kfMda2NWALp0MQ-2FOvmULrxPdhd2nGLCZVyXGBqR90v8naSSvJDVrImuXHJ1j60ONW3Py44QDNHMZKtvRpoCNsNyjk9D5aAxwTAIArHlzPbhfRzb-2FF8Q4mw2zE2rKs4WFaV3OtXaKu0oiqQacC4TyvvnXJWyJ7BHK2MTLXbaMeIhZzA35m-2B5-2FkYPmpVdEZkboMKQ0G-2BedLVCXqg-2Fnz2h8YIPmUY8qCK8g-3D>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica,
and MATLAB
--
You received this message because you are subscribed to the Google Groups
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.