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:
Julien Fischer
2026-01-13 16:45:12 +11:00
parent ae47f9df28
commit efdcd8e21a
4 changed files with 35 additions and 27 deletions

View File

@@ -12,8 +12,10 @@ For the Linux/PowerPC port, see
For the Linux/Motorola 68000 port, see
[README.Linux-m68k.md](README.Linux-m68k.md).
(Ports to Linux on other architectures have not yet
been attempted, but should not be difficult.)
(Ports to Linux on other architectures have not yet been attempted, but should
not be difficult.)
If you are installing on x86, then also see [README.x86.md](README.x86.md).
Building a 32-bit Mercury Compiler on 64-bit Linux
--------------------------------------------------

View File

@@ -1,24 +0,0 @@
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, 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, 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 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.
Also note x86-64 is not affected by this issue, only x86.
<https://bugs.mercurylang.org/view.php?id=453>

View 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.

View File

@@ -59,7 +59,7 @@ Specific information is contained in individual README files in the
* Other platform information
* [Cross compilation](Documentation/README.cross.md)
* [Docker](Documentation/README.Docker)
* [x86](Documentation/README.x86)
* [x86](Documentation/README.x86.md)
## Other information