Commit Graph

234 Commits

Author SHA1 Message Date
Szabolcs Nagy 829d4e32fe remove the LC_ROOT hack from build sysroot
LC_ROOT does not seem to have any useful effect, but the
build sysroot is passed to shell scripts without expanding
the LC_ROOT make variable which breaks tests.
2016-11-06 11:38:50 -05:00
Rich Felker 99ee12d604 litecross: eliminate obstacles to toolchain config from make command line
the += approach which worked in config.mak does not work well if the
user wants to pass in configure options from the command line.
restructure configure command line construction such that setting
COMMON_CONFIG, GCC_CONFIG, or TOOLCHAIN_CONFIG from the command line
does not suppress necessary defaults.
2016-07-08 03:53:19 +00:00
Rich Felker b537e759ef add extract_all rule to top-level makefile
this is useful for preparing to automate multiple builds using shared
source trees. otherwise concurrent builds could clash attempting to
extract the same source trees.
2016-07-07 23:58:01 +00:00
Rich Felker f959bd47cd add support for gmp 6.1.1 and upgrade default version
this fixes build failures for native compiler on some targets where
linking gmp fails with undefined references to __gmpn_invert_limb.
2016-07-07 17:07:24 +00:00
Rich Felker 43519b575c fix regression that introduced race condition build failures for gcc
commit 20ce424e65 introduced a situation
where two instances of gcc's build process could be invoked
concurrently in the process of fixing the same issue for musl. only
the production of native compilers seems to have been affected. add a
direct dependency edge rather than relying on the indirect dependency,
which was only present in non-native mode.
2016-07-07 16:56:18 +00:00
Rich Felker 20ce424e65 disable build/install of temp sysroot headers for native compilers
these are not needed since the cross toolchain being used to build the
native compiler already has its own libc and headers.

but more importantly, due to lack of certain dependency chains that
would be present for a cross compiler build, it was possible for two
invocations of musl's make process to occur in parallel (one for temp
sysroot headers, one for actual libc build). this could (and was
observed to) lead to a race condition where alltypes.h was momentarily
truncated in the middle of the libc build.
2016-07-07 00:41:13 +00:00
Rich Felker 8eeb57f5a5 add support for musl 1.1.15 and make it the default 2016-07-06 03:49:32 +00:00
Rich Felker 7a0997d196 litecross: fix $(TARGET)-based config when value comes from config.mak
commit 03bd65562a wrongly placed the
logic conditional on $(TARGET) before inclusion of config.mak, so that
it only worked when TARGET was set from the make command line or
environment. reorder to fix.
2016-06-22 18:32:56 +00:00
Rich Felker 347bfc9f61 update config.mak presets to sync with modern expectations
config.mak no longer needs to do so much explicitly; the mandatory
options for the target or for musl are auto-selected by the makefile.
2016-06-20 23:26:56 +00:00
Filippo Valsorda 8467bf3a6f Patch elf.h circular dependency out of linux-4.4.10
This enables building on platforms without a native elf.h, like OS X

Fixes #8
2016-05-30 04:44:24 +02:00
Filippo Valsorda d6fe0339ee Fix ub in binutils causing failure to build for arm with clang
https://sourceware.org/bugzilla/show_bug.cgi?id=19222

Fixed by applying binutils@d840c08.
2016-05-30 04:44:24 +02:00
Szabolcs Nagy 59de5df535 add optional isl support for advanced loop optimizations
isl-0.15 does not work before gcc-5.3.0, for older gcc try isl-0.14.1
2016-05-22 23:54:39 +00:00
Rich Felker 03bd65562a litecross: build target config logic into the makefile
leaving necessary configuration options for certain targets to the
user is error-prone and inconvenient. instead of configuration for
exact target string matchs in the sample config.mak, provide general
logic in the makefile itself which should cover all variants as well.
2016-05-19 03:15:32 +00:00
Patrick Oppenlander ab95e8efdc clean: remove linux-* 2016-05-17 02:16:02 +00:00
Patrick Oppenlander ec0f9f1d28 support installing headers for linux 4.x, 3.x and 2.6 kernels 2016-05-17 02:15:51 +00:00
Patrick Oppenlander e84b1bd1fc add support for gcc 5.3.0 and use by default 2016-05-17 02:15:34 +00:00
Rich Felker 0de8362e97 litecross: simplify and fix kernel header installation
I didn't realize before but, using the O make variable, kernel source
can do out-of-tree builds, making it safe to use a symlink rather than
partial copy for the source dir. the partial copy did not work for all
archs; in particular x86 was broken.
2016-05-14 07:37:06 +00:00
Rich Felker 0b3c60ceeb document suppression of kernel headers in sample config.mak 2016-05-14 05:39:05 +00:00
Rich Felker 8b61ebbd9a litecross: rm stale kernel header src/obj dirs before making new ones 2016-05-14 05:25:11 +00:00
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 4afd97ae89 add config example for keeping build path out of output debug info 2016-05-04 03:37:56 +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 5df79ffdbf add config.mak.dist example for static-linked cross toolchain 2016-05-02 19:43:47 +00:00
Rich Felker dd00bd7925 add small build (no debug, etc.) example to config.mak.dist 2016-05-02 19:24:49 +00:00
Rich Felker d02af99f00 remove obsolete/broken texinfo suppression example from config.mak.dist 2016-05-02 19:22:36 +00:00
Rich Felker bfde1aeb9b add info about using pre-installed gmp/mpc/mpfr to config.mak.dist 2016-05-02 19:21:46 +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 7ed2e2c6a0 fix sample config for disabling makeinfo 2016-05-02 05:38:34 +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
Rich Felker b453751480 fix build on systems where native ar/ranlib don't work for target
explicitly pass the pathnames to newly-installed binutils versions of
these programs into musl's make.
2016-04-29 22:02:15 +00:00
Rich Felker 2f1e820bed fix failure of mips libgcc_eh patch to apply
commit 0a16a12799 introduced this patch
with missing leading path component.
2016-04-19 01:48:39 +00:00
Rich Felker 0a16a12799 add patch fixing mips libgcc_eh build not to depend on kernel headers 2016-04-11 02:42:07 +00:00
Rich Felker 43bdd7fc19 fix binutils patching regression that stopped the build
commit 23d6f66966 introduced this
regression as a failure to backport part of the gas testsuite diff
from binutils master to 2.25.1 where the file being patched had a
trivial difference. I'm not sure how this went unnoticed at the time
it was committed.
2016-03-02 00:47:54 +00:00
Rich Felker 23d6f66966 update j2 support patches to Yoshinori Sato's versions
with some minor fixes. unlike my minimal patches, Sato-san's properly
add the isa level logic to binutils and add cas.l atomic intrinsics to
gcc.
2016-02-12 05:57:31 +00:00
Rich Felker 69cadffdec add patch fixing sh sibcall bug that affected musl, remove workaround 2016-02-12 05:35:23 +00:00
Rich Felker 6385b3240a fix .gitignore to only apply to top-level directory 2016-02-11 23:55:01 +00:00
Rich Felker cf013ce0c0 add patch to fix ld bug breaking musl on microblaze 2016-02-11 23:53:39 +00:00
Rich Felker f592ffb96b fix j2 cas.l instruction encoding in patch 2016-01-15 01:13:15 +00:00
Rich Felker ea4a0ce03b update documentation with better instructions, added presets 2015-11-18 22:50:22 +00:00
Rich Felker 8878510198 fix bad codegen in sh/fdpic when stack protector is enabled 2015-11-16 02:12:46 +00:00