Commit Graph

20 Commits

Author SHA1 Message Date
Rich Felker 2c1cd2399a add LIBCC (compiler runtime) logic and override to configure
this should both fix the issue with ARM needing -lgcc_eh (although
that's really a bug in the libgcc build process that's causing
considerable bloat, which should be fixed) and make it easier to build
musl using clang/llvm in place of gcc. unfortunately I don't know a
good way to detect and support pcc's -lpcc since it's not in pcc's
default library search path...
2012-09-10 15:30:52 -04:00
Rich Felker b439c051c7 get rid of eh_frame bloat
if needed for debugging, it will be output in the .debug_frame section
instead, where it is not part of the loaded program and where the
strip command is free to strip it.
2012-08-29 09:36:02 -04:00
Rich Felker 2bd05a4fc2 add gnu hash support in the dynamic linker
based on the patches contributed by boris brezillon.
2012-08-25 17:13:28 -04:00
Rich Felker 94e920d0cd support configuring cross compiling with CROSS_COMPILE prefix variable 2012-08-14 22:50:16 -04:00
Rich Felker 721564a264 make configure accept mipsel 2012-08-05 17:23:38 -04:00
Rich Felker 470569ca00 remove configure check disabling shared libraries on mips 2012-08-05 12:57:19 -04:00
Rich Felker a1546e8d61 disable dynamic linking on mips for now (broken) 2012-07-12 14:24:10 -04:00
Rich Felker 6315004f61 initial version of mips (o32) port, based on work by Richard Pennington (rdp)
basically, this version of the code was obtained by starting with
rdp's work from his ellcc source tree, adapting it to musl's build
system and coding style, auditing the bits headers for discrepencies
with kernel definitions or glibc/LSB ABI or large file issues, fixing
up incompatibility with the old binutils from aboriginal linux, and
adding some new special cases to deal with the oddities of sigaction
and pipe syscall interfaces on mips.

at present, minimal test programs work, but some interfaces are broken
or missing. threaded programs probably will not link.
2012-07-11 04:22:13 -04:00
Rich Felker 2121b8a44f configure: only use -ffloat-store on i386
this option is expensive and only used on old gcc's that lack
-fexcess-precision=standed, but it's not needed on non-i386 archs
where floating point does not have excess precision anyway.

if musl ever supports m68k, i think it will need to be special-cased
too. i'm not aware of any other archs with excess precision.
2012-07-03 23:53:05 -04:00
Rich Felker 498a100d05 check for ld support of -Bsymbolic-functions; disable shared if not avail
this issue affects the last gpl2 version of binutils, which some
people are still using out of aversion to gpl3. musl requires
-Bsymbolic-functions because it's the only way to make a libc.so
that's able to operate prior to dynamic linking but that still behaves
correctly with respect to global vars that may be moved to the main
program via copy relocations.
2012-06-07 00:32:22 -04:00
Rich Felker f1fd7577ba use -nostdlib in linker tests to avoid possible missing crt/lib issues 2012-06-07 00:27:34 -04:00
Rich Felker 67a0383d07 avoid linking main program in linker tests
it's possible that the user has provided a compiler that does not have
any libc to link to, so linking a main program is a bad idea. instead,
generate an empty shared library with no dependencies.
2012-06-07 00:23:58 -04:00
Rich Felker 0c5efde8d0 make configure try to disable stack protector
in theory we could support stack protector in the libc itself, and
users wanting to experiment with such usage could add
-fstack-protector to CFLAGS intentionally. but to avoid breakage in
the default case, override broken distro-patched gcc that forces stack
protector on.
2012-06-06 22:00:08 -04:00
Rich Felker 08f70a30c0 add configure check for gnu linker hash style setting
some broken distro-provided toolchains have modified gcc to produce
only "gnu hash" dynamic hash table by default. as this is unsupported
by musl, that results in a non-working libc.so. we detect and switch
this on in configure rather than hard-coding it in the Makefile
because it's not supported by old binutils versions, but that might
not even be relevant since old binutils versions already fail from
-Bsymbolic-functions being missing. at some point I may review whether
this should just go in the Makefile...
2012-06-06 20:45:52 -04:00
Rich Felker 278883d0e2 fix configure build/host/target terminology usage 2012-06-03 16:22:13 -04:00
Rich Felker c5f3add325 yet another try to get the check for gcc right... 2012-05-14 14:52:55 -04:00
Rich Felker 55e2f5e982 fix error in last configure change (lack of escaping) 2012-05-14 08:14:27 -04:00
Rich Felker bc63e4fa2c correct the check for gcc (previous version failed for cross compilers) 2012-05-13 19:59:28 -04:00
Rich Felker b4ccc3c136 add -frounding-math to build 2012-05-05 17:18:31 -04:00
Rich Felker 64d2f8e82a initial commit of configure script
this script is not based on autoconf; however it attempts to follow
the same interface contracts for ease of integration with build
systems. it is also not necessary to use musl. manually written
config.mak files are still supported, as is building without any
config.mak at all as long as you are happy with the default options
and you supply at least ARCH on the command line to make.
2012-05-04 23:24:51 -04:00