aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEuAndreh <eu@euandre.org>2024-01-02 17:27:12 -0300
committerEuAndreh <eu@euandre.org>2024-01-02 17:27:12 -0300
commitdd0fe05850d0c17358235bfe310db4c51cb6527e (patch)
treed0470ac06a7dba423245a47fff50cbb90ac9bc96
parentRemove unused files (diff)
downloadgrovel-dd0fe05850d0c17358235bfe310db4c51cb6527e.tar.gz
grovel-dd0fe05850d0c17358235bfe310db4c51cb6527e.tar.xz
Inline "INSTALL" into "README"
-rw-r--r--INSTALL191
-rw-r--r--README103
2 files changed, 103 insertions, 191 deletions
diff --git a/INSTALL b/INSTALL
deleted file mode 100644
index c583691d..00000000
--- a/INSTALL
+++ /dev/null
@@ -1,191 +0,0 @@
-
-Quick Installation Guide for musl libc
-======================================
-
-There are many different ways to install musl depending on your usage
-case. This document covers only the build and installation of musl by
-itself, which is useful for upgrading an existing musl-based system or
-compiler toolchain, or for using the provided musl-gcc wrapper with an
-existing non-musl-based compiler.
-
-Building complete native or cross-compiler toolchains is outside the
-scope of this INSTALL file. More information can be found on the musl
-website and community wiki.
-
-
-Build Prerequisites
--------------------
-
-The only build-time prerequisites for musl are GNU Make and a
-freestanding C99 compiler toolchain targeting the desired instruction
-set architecture and ABI, with support for a minimal subset of "GNU C"
-extensions consisting mainly of gcc-style inline assembly, weak
-aliases, hidden visibility, and stand-alone assembly source files.
-
-GCC, LLVM/clang, Firm/cparser, and PCC have all successfully built
-musl, but GCC is the most widely used/tested. Recent compiler (and
-binutils) versions should be used if possible since some older
-versions have bugs which affect musl.
-
-The system used to build musl does not need to be Linux-based, nor do
-the Linux kernel headers need to be available.
-
-
-
-Supported Targets
------------------
-
-musl can be built for the following CPU instruction set architecture
-and ABI combinations:
-
-* i386
- * Minimum CPU model is actually 80486 unless kernel emulation of
- the `cmpxchg` instruction is added
-
-* x86_64
- * ILP32 ABI (x32) is available as a separate arch but is still
- experimental
-
-* ARM
- * EABI, standard or hard-float VFP variant
- * Little-endian default; big-endian variants also supported
- * Compiler toolchains only support armv4t and later
-
-* AArch64
- * Little-endian default; big-endian variants also supported
-
-* MIPS
- * ABI is o32, fp32/fpxx (except on r6 which is fp64)
- * Big-endian default; little-endian variants also supported
- * Default ABI variant uses FPU registers; alternate soft-float ABI
- that does not use FPU registers or instructions is available
- * MIPS2 or later, or kernel emulation of ll/sc (standard in Linux)
- is required
- * MIPS32r6, an incompatible ISA, is supported as a variant "mipsr6"
-
-* MIPS64
- * ABI is n64 (LP64) or n32 (ILP32)
- * Big-endian default; little-endian variants also supported
- * Default ABI variant uses FPU registers; alternate soft-float ABI
- that does not use FPU registers or instructions is available
-
-* PowerPC
- * Compiler toolchain must provide 64-bit long double, not IBM
- double-double or IEEE quad
- * For dynamic linking, compiler toolchain must be configured for
- "secure PLT" variant
-
-* PowerPC64
- * Both little and big endian variants are supported
- * Compiler toolchain must provide 64-bit long double, not IBM
- double-double or IEEE quad
- * Compiler toolchain must use the new (ELFv2) ABI regardless of
- whether it is for little or big endian
-
-* S390X (64-bit S390)
-
-* SuperH (SH)
- * Standard ELF ABI or FDPIC ABI (shared-text without MMU)
- * Little-endian by default; big-endian variant also supported
- * Full FPU ABI or soft-float ABI is supported, but the
- single-precision-only FPU ABI is not
-
-* Microblaze
- * Big-endian default; little-endian variants also supported
- * Soft-float
- * Requires support for lwx/swx instructions
-
-* OpenRISC 1000 (or1k)
-
-* RISC-V 64
- * Little endian
- * Hard, soft, and hard-single/soft-double floating point ABIs
- * Standard ELF; no shared-text NOMMU support
-
-
-
-Build and Installation Procedure
---------------------------------
-
-To build and install musl:
-
-1. Run the provided configure script from the top-level source
- directory, passing on its command line any desired options.
-
-2. Run "make" to compile.
-
-3. Run "make install" with appropriate privileges to write to the
- target locations.
-
-The configure script attempts to determine automatically the correct
-target architecture based on the compiler being used. For some
-compilers, this may not be possible. If detection fails or selects the
-wrong architecture, you can provide an explicit selection on the
-configure command line.
-
-By default, configure installs to a prefix of "/usr/local/musl". This
-differs from the behavior of most configure scripts, and is chosen
-specifically to avoid clashing with libraries already present on the
-system. DO NOT set the prefix to "/usr", "/usr/local", or "/" unless
-you're upgrading libc on an existing musl-based system. Doing so will
-break your existing system when you run "make install" and it may be
-difficult to recover.
-
-
-
-Notes on Dynamic Linking
-------------------------
-
-If dynamic linking is enabled, one file needs to be installed outside
-of the installation prefix: /lib/ld-musl-$ARCH.so.1. This is the
-dynamic linker. Its pathname is hard-coded into all dynamic-linked
-programs, so for the sake of being able to share binaries between
-systems, a consistent location should be used everywhere. Note that
-the same applies to glibc and its dynamic linker, which is named
-/lib/ld-linux.so.2 on i386 systems.
-
-If for some reason it is impossible to install the dynamic linker in
-its standard location (for example, if you are installing without root
-privileges), the --syslibdir option to configure can be used to
-provide a different location
-
-At runtime, the dynamic linker needs to know the paths to search for
-shared libraries. You should create a text file named
-/etc/ld-musl-$ARCH.path (where $ARCH matches the architecture name
-used in the dynamic linker) containing a list of directories where you
-want the dynamic linker to search for shared libraries, separated by
-colons or newlines. If the dynamic linker has been installed in a
-non-default location, the path file also needs to reside at that
-location (../etc relative to the chosen syslibdir).
-
-If you do not intend to use dynamic linking, you may disable it by
-passing --disable-shared to configure; this also cuts the build time
-in half.
-
-
-
-Checking for Successful Installation
-------------------------------------
-
-After installing, you should be able to use musl via the musl-gcc
-wrapper. For example:
-
-cat > hello.c <<EOF
-#include <stdio.h>
-int main()
-{
- printf("hello, world!\n");
- return 0;
-}
-EOF
-/usr/local/musl/bin/musl-gcc hello.c
-./a.out
-
-To configure autoconf-based program to compile and link against musl,
-set the CC variable to musl-gcc when running configure, as in:
-
-CC=musl-gcc ./configure ...
-
-You will probably also want to use --prefix when building libraries to
-ensure that they are installed under the musl prefix and not in the
-main host system library directories.
diff --git a/README b/README
index a30eb112..844cbfa5 100644
--- a/README
+++ b/README
@@ -21,3 +21,106 @@ bootstrapping, and Linux distributions built on musl can be found on
the project website:
http://www.musl-libc.org/
+
+Quick Installation Guide for musl libc
+======================================
+
+There are many different ways to install musl depending on your usage
+case. This document covers only the build and installation of musl by
+itself, which is useful for upgrading an existing musl-based system or
+compiler toolchain, or for using the provided musl-gcc wrapper with an
+existing non-musl-based compiler.
+
+Building complete native or cross-compiler toolchains is outside the
+scope of this INSTALL file. More information can be found on the musl
+website and community wiki.
+
+
+Build Prerequisites
+-------------------
+
+The only build-time prerequisites for musl are GNU Make and a
+freestanding C99 compiler toolchain targeting the desired instruction
+set architecture and ABI, with support for a minimal subset of "GNU C"
+extensions consisting mainly of gcc-style inline assembly, weak
+aliases, hidden visibility, and stand-alone assembly source files.
+
+GCC, LLVM/clang, Firm/cparser, and PCC have all successfully built
+musl, but GCC is the most widely used/tested. Recent compiler (and
+binutils) versions should be used if possible since some older
+versions have bugs which affect musl.
+
+The system used to build musl does not need to be Linux-based, nor do
+the Linux kernel headers need to be available.
+
+
+
+Supported Targets
+-----------------
+
+musl can be built for the following CPU instruction set architecture
+and ABI combinations:
+
+* i386
+ * Minimum CPU model is actually 80486 unless kernel emulation of
+ the `cmpxchg` instruction is added
+
+* x86_64
+ * ILP32 ABI (x32) is available as a separate arch but is still
+ experimental
+
+* ARM
+ * EABI, standard or hard-float VFP variant
+ * Little-endian default; big-endian variants also supported
+ * Compiler toolchains only support armv4t and later
+
+* AArch64
+ * Little-endian default; big-endian variants also supported
+
+* MIPS
+ * ABI is o32, fp32/fpxx (except on r6 which is fp64)
+ * Big-endian default; little-endian variants also supported
+ * Default ABI variant uses FPU registers; alternate soft-float ABI
+ that does not use FPU registers or instructions is available
+ * MIPS2 or later, or kernel emulation of ll/sc (standard in Linux)
+ is required
+ * MIPS32r6, an incompatible ISA, is supported as a variant "mipsr6"
+
+* MIPS64
+ * ABI is n64 (LP64) or n32 (ILP32)
+ * Big-endian default; little-endian variants also supported
+ * Default ABI variant uses FPU registers; alternate soft-float ABI
+ that does not use FPU registers or instructions is available
+
+* PowerPC
+ * Compiler toolchain must provide 64-bit long double, not IBM
+ double-double or IEEE quad
+ * For dynamic linking, compiler toolchain must be configured for
+ "secure PLT" variant
+
+* PowerPC64
+ * Both little and big endian variants are supported
+ * Compiler toolchain must provide 64-bit long double, not IBM
+ double-double or IEEE quad
+ * Compiler toolchain must use the new (ELFv2) ABI regardless of
+ whether it is for little or big endian
+
+* S390X (64-bit S390)
+
+* SuperH (SH)
+ * Standard ELF ABI or FDPIC ABI (shared-text without MMU)
+ * Little-endian by default; big-endian variant also supported
+ * Full FPU ABI or soft-float ABI is supported, but the
+ single-precision-only FPU ABI is not
+
+* Microblaze
+ * Big-endian default; little-endian variants also supported
+ * Soft-float
+ * Requires support for lwx/swx instructions
+
+* OpenRISC 1000 (or1k)
+
+* RISC-V 64
+ * Little endian
+ * Hard, soft, and hard-single/soft-double floating point ABIs
+ * Standard ELF; no shared-text NOMMU support