1. 25 2月, 2014 1 次提交
    • S
      mips: add mips-sf subarch support (soft-float) · e5bb165b
      Szabolcs Nagy 提交于
      Userspace emulated floating-point (gcc -msoft-float) is not compatible
      with the default mips abi (assumes an FPU or in kernel emulation of it).
      Soft vs hard float abi should not be mixed, __mips_soft_float is checked
      in musl's configure script and there is no runtime check. The -sf subarch
      does not save/restore floating-point registers in setjmp/longjmp and only
      provides dummy fenv implementation.
      e5bb165b
  2. 24 2月, 2014 1 次提交
  3. 23 2月, 2014 2 次提交
    • R
      configure: suppress bogus pointer-int cast warnings · adbeefbe
      rofl0r 提交于
      adbeefbe
    • R
      configure: recognize x86_64-x32 and x32 · 3e4b2cdc
      rofl0r 提交于
      x32 is the internal arch name, but glibc uses x86_64-x32.
      there doesn't exist a specific triple for x32 in gcc and binutils.
      you're supposed to build your compiler for x86_64 and configure
      it with multilib support for "mx32".
      
      however it turns out that using a triple of x86_64-x32 makes
      gcc and binutils pick up the right arch (they detect it as x86_64)
      and allows us to have a unique triple for cross-compiler toolchains.
      3e4b2cdc
  4. 28 8月, 2013 2 次提交
    • R
      remove -Wcast-align from --enable-warnings · f7bc29ed
      Rich Felker 提交于
      I originally added this warning option based on a misunderstanding of
      how it works. it does not warn whenever the destination of the cast
      has stricter alignment; it only warns in cases where misaligned
      dereference could lead to a fault. thus, it's essentially a no-op for
      i386, which had me wrongly believing the code was clean for this
      warning level. on other archs, numerous diagnostic messages are
      produced, and all of them are false-positives, so it's better just not
      to use it.
      f7bc29ed
    • R
      add attribute((may_alias)) checking in configure · 06ceee8c
      Rich Felker 提交于
      this will be needed for upcoming commits to the string/mem functions
      to correct their unannounced use of aliasing violations for
      word-at-a-time search, fill, and copy operations.
      06ceee8c
  5. 21 8月, 2013 1 次提交
    • R
      fix two bugs in sed code configure uses to save command line · e449974d
      Rich Felker 提交于
      one place where semicolon (non-portable) was still used in place of
      separate -e options (copied over from an old version of this code),
      and use of a literal slash in the bracket expression for the final
      command, despite slash being used as the delimiter for the s command.
      e449974d
  6. 17 8月, 2013 2 次提交
    • R
      make configure store its command line in config.mak for easy re-run · 453f4622
      Rich Felker 提交于
      proper shell quoting and pretty-printing (avoiding ugly gratuitous
      quoting and bad quoting style) is included.
      453f4622
    • R
      fix detection of arm hardfloat · 4918c2bb
      Rich Felker 提交于
      it turns out that __SOFTFP__ does not indicate the ABI in use but
      rather that fpu instructions are not to be used at all. this is
      specified in ARM's documentation so I'm unclear on how I previously
      got the wrong idea. unfortunately, this resulted in the 0.9.12 release
      producing a dynamic linker with the wrong name. fortunately, there do
      not yet seem to be any public toolchain builds using the wrong name.
      
      the __ARM_PCS_VFP macro does not seem to be official from ARM, and in
      fact it was missing from the very earliest gcc versions (around 4.5.x)
      that added -mfloat-abi=hard. it would be possible on such versions to
      perform some ugly linker-based tests instead in hopes that the linker
      will reject ABI-mismatching object files, if there is demand for
      supporting such versions. I would probably prefer to document which
      versions are broken and warn users to manually add -D__ARM_PCS_VFP if
      using such a version.
      
      there's definitely an argument to be made that the fenv macros should
      be exposed even in -mfloat-abi=softfp mode. for now, I have chosen not
      to expose them in this case, since the math library will not
      necessarily have the capability to raise exceptions (it depends on the
      CFLAGS used to compile it), and since exceptions are officially
      excluded from the ARM EABI, which the plain "arm" arch aims to
      follow.
      4918c2bb
  7. 11 8月, 2013 1 次提交
    • R
      allow subarch-specific asm, including asm specific to the default · 90d77722
      Rich Felker 提交于
      the default subarch is the one whose full name is just the base arch
      name, with no suffixes. normally, either the asm in the default
      subarch is suitable for all subarch variants, or separate asm is
      mandatory for each variant. however, in the case of asm which is
      purely for optimization purposes, it's possible to have asm that only
      works (or only performs well) on the default subarch, and not any othe
      the other variants. thus, I have added a mechanism to give a name to
      the default variant, for example "armel" for the default,
      little-endian arm. further such default-subarch names can be added in
      the future as needed.
      90d77722
  8. 03 8月, 2013 1 次提交
  9. 02 8月, 2013 1 次提交
  10. 25 7月, 2013 1 次提交
  11. 23 7月, 2013 1 次提交
    • R
      enhance build process to allow selective -O3 optimization · a80847d8
      Rich Felker 提交于
      the motivation for this patch is that the vast majority of libc is
      code that does not benefit at all from optimizations, but that certain
      components like string/memory operations can be major performance
      bottlenecks.
      
      at the same time, the old -falign-*=1 options are removed, since they
      were only beneficial for avoiding bloat when global -O3 was used, and
      in that case, they may have prevented some of the performance gains.
      
      to be the most useful, this patch will need further tuning. in
      particular, research is needed to determine which components should be
      built with -O3 by default, and it may be desirable to remove the
      hard-coded -O3 and instead allow more customization of the
      optimization level used for selected modules.
      a80847d8
  12. 19 7月, 2013 2 次提交
  13. 12 12月, 2012 1 次提交
  14. 19 11月, 2012 1 次提交
  15. 14 11月, 2012 1 次提交
  16. 09 11月, 2012 1 次提交
  17. 27 10月, 2012 2 次提交
    • R
      further pcc fixes in configure · cd31a1fc
      Rich Felker 提交于
      -lpcc only works if -nostdlib is not passed, so it's useless. instead,
      use -print-file-name to look up the full pathname for libpcc.a, and
      check whether that succeeds before trying to link with the result.
      
      also, silence pcc's junk printed on stdout during tests.
      cd31a1fc
    • R
      add support for detecting pcc's compiler runtime · 3d99266b
      Rich Felker 提交于
      in old versions of pcc, the directory containing libpcc.a was not in
      the library path, and other options like -print-file-name may have
      been needed to locate it. however, -print-file-name itself seems to
      have been added around the same time that the directory was added to
      the search path, and moreover, I see no evidence that older versions
      of pcc are capable of building a working musl shared library. thus, it
      seems reasonable to just test whether -lpcc is accepted.
      3d99266b
  18. 26 10月, 2012 1 次提交
  19. 19 10月, 2012 1 次提交
  20. 03 10月, 2012 1 次提交
    • R
      tell the assembler to mark all files as not requiring executable stack · adefe830
      Rich Felker 提交于
      for some reason this option is undocumented. not sure when it was
      added, so I'm using a configure test. gcc was already setting the mark
      correctly for C files, but assembler source files would need ugly
      .note boilerplate in every single file to achieve this without the
      option to the assembler.
      
      blame whoever thought it would be a good idea to make the stack
      executable by default rather than doing it the other way around...
      adefe830
  21. 29 9月, 2012 1 次提交
    • R
      microblaze port · 8c0a3d9e
      Rich Felker 提交于
      based on initial work by rdp, with heavy modifications. some features
      including threads are untested because qemu app-level emulation seems
      to be broken and I do not have a proper system image for testing.
      8c0a3d9e
  22. 11 9月, 2012 1 次提交
    • R
      add LIBCC (compiler runtime) logic and override to configure · 2c1cd239
      Rich Felker 提交于
      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...
      2c1cd239
  23. 29 8月, 2012 1 次提交
    • R
      get rid of eh_frame bloat · b439c051
      Rich Felker 提交于
      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.
      b439c051
  24. 26 8月, 2012 1 次提交
  25. 15 8月, 2012 1 次提交
  26. 06 8月, 2012 2 次提交
  27. 13 7月, 2012 1 次提交
  28. 11 7月, 2012 1 次提交
    • R
      initial version of mips (o32) port, based on work by Richard Pennington (rdp) · 6315004f
      Rich Felker 提交于
      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.
      6315004f
  29. 04 7月, 2012 1 次提交
    • R
      configure: only use -ffloat-store on i386 · 2121b8a4
      Rich Felker 提交于
      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.
      2121b8a4
  30. 07 6月, 2012 5 次提交
    • R
      check for ld support of -Bsymbolic-functions; disable shared if not avail · 498a100d
      Rich Felker 提交于
      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.
      498a100d
    • R
    • R
      avoid linking main program in linker tests · 67a0383d
      Rich Felker 提交于
      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.
      67a0383d
    • R
      make configure try to disable stack protector · 0c5efde8
      Rich Felker 提交于
      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.
      0c5efde8
    • R
      add configure check for gnu linker hash style setting · 08f70a30
      Rich Felker 提交于
      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...
      08f70a30