فهرست منبع

update documentation with better instructions, added presets

Rich Felker 9 سال پیش
والد
کامیت
ea4a0ce03b
4فایلهای تغییر یافته به همراه63 افزوده شده و 17 حذف شده
  1. 31 17
      README.md
  2. 4 0
      config.mak.dist
  3. 14 0
      presets/j2-fdpic
  4. 14 0
      presets/j2-pie-gplv2

+ 31 - 17
README.md

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

+ 4 - 0
config.mak.dist

@@ -1,6 +1,10 @@
 OUTPUT = $(PWD)/output
 TARGET = sh2eb-linux-musl
 
+# See the patches directory for supported versions. Versions
+# without patches should not be expected to work until gcc 6.
+# Older versions may have known bugs or limited functionality.
+
 BINUTILS_VER = 2.25.1
 GCC_VER = 5.2.0
 

+ 14 - 0
presets/j2-fdpic

@@ -0,0 +1,14 @@
+OUTPUT = $(PWD)/output
+TARGET = sh2eb-linux-muslfdpic
+
+BINUTILS_VER = 2.25.1
+GCC_VER = 5.2.0
+
+COMMON_CONFIG += --disable-nls
+COMMON_CONFIG += MAKEINFO=/bin/false
+GCC_CONFIG += --enable-languages=c,c++
+GCC_CONFIG += --disable-libquadmath --disable-decimal-float
+GCC_CONFIG += --disable-multilib
+
+GCC_CONFIG += --with-cpu=mj2
+GCC_CONFIG += --enable-fdpic

+ 14 - 0
presets/j2-pie-gplv2

@@ -0,0 +1,14 @@
+OUTPUT = $(PWD)/output
+TARGET = sh2eb-linux-musl
+
+GCC_VER = 4.2.1
+BINUTILS_VER = 397a64b3
+BINUTILS_SITE = http://landley.net/aboriginal/mirror
+
+COMMON_CONFIG += --disable-nls
+BINUTILS_CONFIG += MAKEINFO=/bin/false
+GCC_CONFIG += --enable-languages=c,c++
+GCC_CONFIG += --disable-libquadmath --disable-decimal-float
+GCC_CONFIG += --disable-multilib
+
+GCC_CONFIG += --enable-default-pie