Skip to content
  1. Feb 28, 2014
  2. Feb 09, 2014
  3. Feb 05, 2014
    • Todd Fiala's avatar
      Fix configure to find arc4random via header files. · 4ccfe392
      Todd Fiala authored
      ISSUE:
      
      On Ubuntu 12.04 LTS, arc4random is provided by libbsd.so, which is a
      transitive dependency of libedit. If a system had libedit on it that
      was implemented in terms of libbsd.so, then the arc4random test,
      previously implemented as a linker test, would succeed with -ledit.
      However, on Ubuntu this would also require a #include <bsd/stdlib.h>.
      This caused a build breakage on configure-based Ubuntu 12.04 with
      libedit installed.
      
      FIX:
      
      This fix changes configure to test for arc4random by searching for it
      in the standard header files. On Ubuntu 12.04, this test now properly
      fails to find arc4random as it is not defined in the default header
      locations. It also tweaks the #define names to match the output of the
      header check command, which is slightly different than the linker
      function check #defines.
      
      I tested the following scenarios:
      
      (1) Ubuntu 12.04 without the libedit package [did not find arc4random,
      as expected]
      
      (2) Ubuntu 12.04 with libedit package [properly did not find
      arc4random, as expected]
      
      (3) Ubuntu 12.04 with most recent libedit, custom built, and not
      dependent on libbsd.so [properly did not find arc4random, as
      expected].
      
      (4) FreeBSD 10.0B1 [properly found arc4random, as expected]
      
      llvm-svn: 200819
      4ccfe392
  4. Feb 01, 2014
    • Peter Collingbourne's avatar
      Introduce line editor library. · c7d437c1
      Peter Collingbourne authored
      This library will be used by clang-query. I can imagine LLDB becoming another
      client of this library, so I think LLVM is a sensible place for it to live.
      It wraps libedit, and adds tab completion support.
      
      The code is loosely based on the line editor bits in LLDB, with a few
      improvements:
      
       - Polymorphism for retrieving the list of tab completions, based on
         the concept pattern from the new pass manager.
      
       - Tab completion doesn't corrupt terminal output if the input covers
         multiple lines. Unfortunately this can only be done in a truly horrible
         way, as far as I can tell. But since the alternative is to implement our
         own line editor (which I don't think LLVM should be in the business of
         doing, at least for now) I think it may be acceptable.
      
       - Includes a fallback for the case where the user doesn't have libedit
         installed.
      
      Note that this uses C stdio, mainly because libedit also uses C stdio.
      
      Differential Revision: http://llvm-reviews.chandlerc.com/D2200
      
      llvm-svn: 200595
      c7d437c1
  5. Jan 15, 2014
    • Chandler Carruth's avatar
      Use a heavier hammer when --enable-libcpp is passed to bypass the tests · eba44ea5
      Chandler Carruth authored
      which catch buggy versions of libstdc++. While libc++ would pass them,
      we don't actually update the state in the configure script to use libc++
      when we pass --enable-libcpp, the logic for that is in the
      Makefiles. So just completely skip the library test when that configure
      flag is passed.
      
      Hopefully this will be enough to fix the darwin bots at last, and thanks
      to Duncan Smith for getting things set up so I can watch the bots myself
      on lab.llvm.org and see any failures!
      
      llvm-svn: 199334
      eba44ea5
    • Chandler Carruth's avatar
      Sink the autoconf check for sufficiently modern host toolchain below the · 7206eaef
      Chandler Carruth authored
      enable flag that selects the C++ standard library to use with the host
      toolchain. Otherwise we end up testing the wrong config.
      
      I'm not really happy about this placement, but its pragmatic and should
      unblock the Apple builders.
      
      llvm-svn: 199325
      7206eaef
    • Chandler Carruth's avatar
      Fix a bug in r199313 where I failed to restore CXXFLAGS. Doh! Not · 577322a0
      Chandler Carruth authored
      *quite* ready to just slam C++11 on by default.
      
      llvm-svn: 199314
      577322a0
    • Chandler Carruth's avatar
      Add a check to configure that the libstdc++ selected by Clang isn't · f8c6ccf8
      Chandler Carruth authored
      libstdc++v4.6. This is quite hard to test directly, so we test for it by
      checking a known missing feature in that version that was added in v4.7.
      
      This should prevent users from upgrading Clang but not GCC and hosting
      with a too-old GCC's libstdc++ and getting strange and hard to debug
      errors when we switch to C++11 by default.
      
      Also, switch several of the macros I introduced to use AC_LANG_SOURCE
      rather than AC_LANG_PROGRAM as we don't need configure's help writing
      our main function (and we don't need such a function at all for most of
      the tests).
      
      llvm-svn: 199313
      f8c6ccf8
  6. Jan 14, 2014
  7. Jan 09, 2014
  8. Jan 01, 2014
  9. Nov 20, 2013
  10. Nov 11, 2013
  11. Oct 12, 2013
  12. Oct 07, 2013
  13. Sep 24, 2013
  14. Aug 30, 2013
    • Daniel Dunbar's avatar
      [conf] Add config variable to disable crash related overrides. · eb6c708d
      Daniel Dunbar authored
       - We do some nasty things w.r.t. installing or overriding signal handlers in
         order to improve our crash recovery support or interaction with crash
         reporting software, and those things are not necessarily appropriate when
         LLVM is being linked into a client application that has its own ideas about
         how to do things. This gives those clients a way to disable that handling at
         build time.
      
       - Currently, the code this guards is all Apple specific, but other platforms
         might have the same concerns so I went for a more generic configure
         name. Someone who is more familiar with library embedding on Windows can
         handle choosing which of the Windows/Signals.inc behaviors might make sense
         to go under this flag.
      
       - This also fixes the proper autoconf'ing of ENABLE_BACKTRACES. The code
         expects it to be undefined when disabled, but the autoconf check was just
         defining it to 0.
      
      llvm-svn: 189694
      eb6c708d
  15. Aug 22, 2013
  16. Aug 17, 2013
  17. Aug 12, 2013
    • Chandler Carruth's avatar
      Remove all checking for the various terminfo headers (term.h and · 91219858
      Chandler Carruth authored
      curses.h). Finding these headers is next to impossible. For example, on
      Debian systems libtinfo-dev provides the terminfo reading library we
      want, but *not* term.h. For the header, you have to use libncurses-dev.
      And libncursesw-dev provides a *different* term.h in a different
      location!
      
      These headers aren't worth it. We want two functions the signatures of
      which are clearly spec'ed in sys-v and other documentation. Just declare
      them ourselves and call them. This should fix some debian builders and
      provide better support for "minimal" debian systems that do want color
      autodetection.
      
      llvm-svn: 188165
      91219858
    • Chandler Carruth's avatar
      Target a minimal terminfo library rather than necessarily a full curses · f11f1e43
      Chandler Carruth authored
      library for color support detection. This still will use a curses
      library if that is all we have available on the system. This change
      tries to use a smaller subset of the curses library, specifically the
      subset that is on some systems split off into a separate library. For
      example, if you install ncurses configured --with-tinfo, a 'libtinfo' is
      install that provides just the terminfo querying functionality. That
      library is now used instead of curses when it is available.
      
      This happens to fix a build error on systems with that library because
      when we tried to link ncurses into the binary, we didn't pull tinfo in
      as well. =]
      
      It should also provide an easy path for supporting the NetBSD
      libterminfo library, but as I don't have access to a NetBSD system I'm
      leaving adding that support to those folks.
      
      llvm-svn: 188160
      f11f1e43
  18. Aug 07, 2013
    • Chandler Carruth's avatar
      Add support for linking against a curses library when available and · cad7e5e0
      Chandler Carruth authored
      using it to detect whether or not a terminal supports colors. This
      replaces a particularly egregious hack that merely compared the TERM
      environment variable to "dumb". That doesn't really translate to
      a reasonable experience for users that have actually ensured their
      terminal's capabilities are accurately reflected.
      
      This makes testing a terminal for color support somewhat more expensive,
      but it is called very rarely anyways. The important fast path when the
      output is being piped somewhere is already in place.
      
      The global lock may seem excessive, but the spec for calling into curses
      is *terrible*. The whole library is terrible, and I spent quite a bit of
      time looking for a better way of doing this before convincing myself
      that this was the fundamentally correct way to behave. The damage of the
      curses library is very narrowly confined, and we continue to use raw
      escape codes for actually manipulating the colors which is a much sane
      system than directly using curses here (IMO).
      
      If this causes trouble for folks, please let me know. I've tested it on
      Linux and will watch the bots carefully. I've also worked to account for
      the variances of curses interfaces that I could finde documentation for,
      but that may not have been sufficient.
      
      llvm-svn: 187874
      cad7e5e0
  19. Aug 03, 2013
  20. Jul 26, 2013
  21. Jul 25, 2013
  22. Jul 08, 2013
  23. Jul 04, 2013
  24. Jul 01, 2013
    • Sylvestre Ledru's avatar
      The build system is currently miss-identifying GNU/kFreeBSD as FreeBSD. · 93a491bb
      Sylvestre Ledru authored
      This kind of simplification is sometimes useful, but in general it's not correct. 
      
      As GNU/kFreeBSD is an hybrid system, for kernel-related issues we want to match the
      build definitions used for FreeBSD, whereas for userland-related issues we want to
      match the definitions used for other systems with Glibc.
      
      The current modification adjusts the build system so that they can be distinguished,
      and explicitly adds GNU/kFreeBSD to the build checks in which it belongs.
      
      Fixes bug #16444.
      
      Patch by Robert Millan in the context of Debian.
      
      llvm-svn: 185311
      93a491bb
  25. Jun 25, 2013
  26. Jun 11, 2013
Loading