Commit Graph

14 Commits

Author SHA1 Message Date
Rich Felker 5faef372d4 litecross: automatically determine LINUX_ARCH for kernel headers 2016-05-14 05:23:25 +00:00
Rich Felker 9bd379f80b add support for installation of linux kernel headers
this feature is still experimental and requires manually setting a
LINUX_ARCH make variable matching the target. automatic mapping will
be added later. if LINUX_ARCH is not set, header installation is
skipped.
2016-05-14 04:17:47 +00:00
Rich Felker 75b8346bed litecross: create $(TARGET)-cc symlink for installed compiler
in case the user does not want to write the 'g' when invoking 'gcc'.
2016-05-14 03:10:55 +00:00
Rich Felker 0291cc44ee litecross: add some gcc options that should always be used with musl
libmpx is broken in all gcc versions that have it (not supported yet
by mcm/litecross, but will be).

ifunc is not supported by musl and won't be unless/until the contract
for resolvers can be specified clearly in a way that real-world usage
is safe and does not require lazy binding; having it enabled at gcc
level reportedly produces a broken libatomic.

explicitly enabling libstdcxx-time is needed to get libc clock_gettime
(with vdso support) to be used in libstdc++; it's disabled by default
because of glibc legacy practice of having clock_gettime in librt,
which depends on glibc's libpthread and undermines libstdc++'s
(invalid use of) weak references to pthread symbols.
2016-05-06 18:37:09 +00:00
Rich Felker 4a5931ba67 litecross: only build c,c++ frontends by default
others are untested and some are likely broken. add this config option
before including config.mak rather than after so that the user can
override it in config.mak if desired.
2016-05-06 05:33:19 +00:00
Rich Felker 7a6ed3af0f litecross: always disable multilib, suppress lib64, etc. dir structures
multilib would not be usable without building multiple versions of
musl anyway, which we don't yet support, so enabling it does not make
sense. due to bugs in gcc's build system, even with multilib disabled,
multilib dir structures get used on 64-bit archs leading to target
libs being installed in /lib64 (or /libx32, etc.) under the sysroot,
rather than /lib. fix this by suppressing the variable that controls
it.
2016-05-06 05:29:07 +00:00
Rich Felker b732495b33 litecross: add support for cross-compiling a native toolchain
experimental feature. activated by setting NATIVE make var.
cross-compiler for the host/target system must already be installed at
a location in PATH.
2016-05-06 03:00:35 +00:00
Rich Felker 26847b129b fix suppression of info installation
blanking INFO_DEPS suffices to prevent attempts to rebuild the docs,
but does not reliably suppress their installation. blanking infodir
does the latter. there are other methods that work too but this seems
to be the simplest.
2016-05-03 04:28:26 +00:00
Rich Felker 2d0015f547 remove spurious flex dependency
nothing in a normal gcc/binutils actually uses flex and bison, but
this useless test for the output filename lex produces breaks the
build unless [f]lex is installed. the result of this check is
specified by posix anyway, so hard-code the specified result.
2016-05-02 18:43:15 +00:00
Rich Felker ab6716ea08 suppress info build and installation, remove texinfo dependency 2016-05-02 18:19:19 +00:00
Rich Felker 7160eb79e4 litecross: pass any updates to the MAKE var into gcc build system
adding them to $(MAKE) is the best way I know to get make variable
overrides into the gcc build system.
2016-05-02 17:58:38 +00:00
Rich Felker 0ab346e85d litecross: accept empty {GMP,MPC,MPFR}_SRCDIR to use pre-installed ones 2016-05-02 17:45:22 +00:00
Rich Felker 82fb13a8ff fix small copy&paste error in litecross makefile dependencies 2016-05-02 05:36:54 +00:00
Rich Felker ee1ebda23e overhaul build process with litecross, next-gen top-level makefile 2016-05-01 05:36:28 +00:00