mirror of
https://github.com/Mercury-Language/mercury.git
synced 2026-04-15 01:13:30 +00:00
Convert another README to Markdown.
Documentation/README.x86.md: As above. Move the the bit about x86-64 not being affected by the issue described in this file from the bottom to the top. Documentation/README.Linux.md: Add a pointer to the README.x86.md file. README.md: Conform to the above change.
This commit is contained in:
30
Documentation/README.x86.md
Normal file
30
Documentation/README.x86.md
Normal file
@@ -0,0 +1,30 @@
|
||||
Mercury on x86
|
||||
--------------
|
||||
|
||||
This file contains a note for users who are installing Mercury on x86 systems
|
||||
that use ELF shared libraries. Note that the x86-64 is *not* affected by
|
||||
the issue described below, only x86.
|
||||
|
||||
Due to improvements in GCC, the following combination is not supported:
|
||||
|
||||
- GCC version 5 and above
|
||||
- x86
|
||||
- PIC (position-independent code)
|
||||
- Low-level C grades using non-local gotos, i.e. `asm_fast.*`
|
||||
|
||||
The configure script will not select `asm_fast` grades when the above
|
||||
combination is detected. If you try to use that combination by selecting an
|
||||
`asm_fast` grade manually, then you will encounter compilation errors.
|
||||
|
||||
We recommend using high-level C grades (`hlc.*`) on x86. If you require a
|
||||
low-level C grade, e.g. for debugging, then you can use a `reg.*` grade.
|
||||
|
||||
If you must use an `asm_fast` grade, then you will need to tell the C compiler
|
||||
not to generate position-independent code (which may be the default), *and*
|
||||
disable building of shared libraries. Alternatively, you could downgrade to
|
||||
GCC version 4.9.
|
||||
|
||||
Note that Windows is unaffected by this issue as Windows does not use PIC,
|
||||
and we do not yet support shared libraries (DLLs) on Windows anyway.
|
||||
|
||||
See <https://bugs.mercurylang.org/view.php?id=453> for further details.
|
||||
Reference in New Issue
Block a user