|
@@ -2,31 +2,45 @@ musl-cross-make
|
|
|
===============
|
|
|
|
|
|
This is a quick and simple makefile-based alternative for producing
|
|
|
-musl-based cross compilers. In addition to the build system, it
|
|
|
-provides a number of patches, including:
|
|
|
+musl-based cross compilers. The current focus is on SH2/J2 Core
|
|
|
+targets and NOMMU (where PIE or FDPIC is mandatory) since these are
|
|
|
+not adequately supported by other musl cross-compiler toolchain build
|
|
|
+systems, but all musl-supported targets are intended to work.
|
|
|
|
|
|
-- Updated versions of the musl target patches going into upstream GCC
|
|
|
-
|
|
|
-- Static-PIE support and enabling PIE as default
|
|
|
+In addition to the build system, musl-cross-make provides a number of
|
|
|
+patches, including:
|
|
|
|
|
|
+- Updated versions of the musl target patches going into upstream GCC
|
|
|
+- Static-PIE support and optionally defaulting to PIE
|
|
|
- Fixes for SH-specific bugs and bitrot in GCC
|
|
|
-
|
|
|
- Support for J2 Core CPU target in GCC & binutils
|
|
|
+- SH/FDPIC ABI support
|
|
|
+
|
|
|
+Most of these patches are integrated in gcc trunk/binutils master.
|
|
|
+They should also be usable with Gregor's original musl-cross or other
|
|
|
+build systems, if desired.
|
|
|
+
|
|
|
+Some functionality (SH/FDPIC, and support for J2 specific features) is
|
|
|
+presently only available with gcc 5.2.0 and binutils 2.25.1.
|
|
|
|
|
|
-The current focus is on SH2/J2 Core targets and NOMMU (where PIE is
|
|
|
-mandatory) since these are not adequately supported by other musl
|
|
|
-cross-compiler toolchain build systems.
|
|
|
|
|
|
Usage
|
|
|
-----
|
|
|
|
|
|
-To build, copy the provided config.mak.dist to config.mak and edit
|
|
|
-then run make. Parallel builds are supported. The host needs to have
|
|
|
-suitable gmp/mpfr/mpc libraries installed in the standard library
|
|
|
-path, or you can add the appropriate --with options to GCC_CONFIG.
|
|
|
+The build system make be configured by providing a config.mak file in
|
|
|
+the top-level directory. The only mandatory variable is TARGET, which
|
|
|
+should contain a gcc target tuple (such as sh2eb-linux-musl), but many
|
|
|
+more options are available. The top-level config.mak.dist file shows
|
|
|
+examples, and several full configurations are available in presets/*.
|
|
|
+
|
|
|
+For recent gcc versions that need gmp/mpfr/mpc, suitable versions need
|
|
|
+to be installed in the default library path, or the appropriate --with
|
|
|
+configure options need to be added to GCC_CONFIG in config.mak so that
|
|
|
+the gcc configure process can find them.
|
|
|
|
|
|
-At present only GCC 5.2.0 and Binutils 2.25.1 are supported.
|
|
|
-Backporting of patches is needed to support other versions.
|
|
|
+After setting up config.mak, simply run make. Parallel builds are
|
|
|
+supported.
|
|
|
|
|
|
-The included patches should also be usable with Gregor's original
|
|
|
-musl-cross or other build systems, if desired.
|
|
|
+The resulting toolchain will be placed ./output by default, or the
|
|
|
+OUTPUT directory specified in config.mak. It is sysrooted and can be
|
|
|
+freely moved to a different location.
|