Skip to content
  1. Aug 24, 2015
  2. Aug 23, 2015
  3. Aug 20, 2015
  4. Aug 19, 2015
    • Thomas Petazzoni's avatar
      libselinux: mark as not available on ARC · 881845f5
      Thomas Petazzoni authored
      libselinux causes some build problems due to the toolchain on ARC,
      which haven't been solved so far. As a temporary solution for Buildroot
      2015.08, this commit makes libselinux (and its reverse dependencies)
      unavailable on ARC. Of course, once the toolchain problem is
      addressed, this commit can be reverted to re-enable libselinux on ARC.
      
      Fixes:
      
         http://autobuild.buildroot.org/results/220/2207f6aad44a6988bf07b02b583b6418ad930dc8/
      
      
      
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
      881845f5
    • Thomas Petazzoni's avatar
      boost: fix build on ARC · b7aee38f
      Thomas Petazzoni authored
      This commit adds a patch to Boost to make it use the eventfd()
      function provided by the C library when uClibc is used, rather than
      falling back to using directly the __NR_eventfd system call. This
      fixes the build on ARC, which doesn't define __NR_eventfd.
      
      The original problem is that uClibc pretends to be glibc 2.2, which
      didn't had eventfd(), so Boost makes the system call
      manually. uClibc-ng, in its next release, will pretend to be glibc
      2.10 (see
      http://cgit.uclibc-ng.org/cgi/cgit/uclibc-ng.git/commit/?id=4ff3a6c8eb91db71d6dc3d2932b66e848bd20ac3),
      which will also fix the problem, but requires bumping the uClibc
      version, rebuilding the external toolchains, and so on.
      
      Ideally, Boost should be doing a compile test to detect if eventfd()
      is available or not, but the Boost build system is so brain-damaged
      that doing so would require way too much effort.
      
      Fixes:
      
        http://autobuild.buildroot.org/results/22b/22b710346d2cd78b7b51cdccd18d670bb6ac5d24/
      
      
        and many similar build failures
      
      [Peter: minor tweaks to description]
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
      b7aee38f
    • Thomas Petazzoni's avatar
      mono: depend on shared library support · 93f6baf1
      Thomas Petazzoni authored
      The mono source code includes <dlfcn.h>, which is only available when
      shared library support is available. While it might be possible to do
      a fully static installation of Mono, it probably isn't very useful.
      
      While we're at it, this commit also makes sure that the Config.in
      comment is not visible when the architecture doesn't support Mono.
      
      Fixes:
      
        http://autobuild.buildroot.net/results/5d99bdf77f1942fa403081267c362aa1f8fd0dab/
      
      
      
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      93f6baf1
    • Matthew Shyu's avatar
      qt5base: install libQt5XcbQpa.so for xcb backend · 58051332
      Matthew Shyu authored
      
      
      When the XCB backend is selected, the libqxcb.so plugin is installed,
      and is linked against libQt5XcbQpa.so. However, until, Buildroot was
      not installing this library. This commit fixes this.
      
      [Thomas: tweak commit log.]
      
      Signed-off-by: default avatarMatthew Shyu <matthew.shyu@amlogic.com>
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      58051332
    • Thomas Petazzoni's avatar
      libpthsem: fix setjmp/longjmp detection · 97e9db43
      Thomas Petazzoni authored
      libpthsem has been affected since quite a while by build issues, but
      occuring only on Nathaniel Roach's autobuilder. The failure message
      is:
      
        error: #error "Unsupported Linux (g)libc version and/or platform"
      
      This message comes from pth_mctx.c file, which implements five methods
      for machine context initialization:
      
        VARIANT 1: THE STANDARDIZED SVR4/SUSv2 APPROACH
        VARIANT 2: THE SIGNAL STACK TRICK
        VARIANT 3: LINUX SPECIFIC JMP_BUF FIDDLING
        VARIANT 4: INTERACTIVE SPECIFIC JMP_BUF FIDDLING
        VARIANT 5: WIN32 SPECIFIC JMP_BUF FIDDLING
      
      The "Unsupported (g)libc version and/or platform" only appears when
      "VARIANT 4" is used, since VARIANT 4 only supports a very limited
      number of platforms. So when building with Nathaniel's autobuilder,
      VARIANT 4 is chosen.
      
      However, when you build libpthsem on some other machine than
      Nathaniel's autobuilder, VARIANT 2 is chosen, and works regardless of
      the glibc version or architecture.
      
      VARIANT 2 is chosen when:
      
            !PTH_MCTX_DSP(sjljlx)  &&\
            !PTH_MCTX_DSP(sjljisc) &&\
            !PTH_MCTX_DSP(sjljw32)
      
      On both Nathaniel's autobuilder, and on a different machine, the
      PTH_MCTX_MTH macro gives sjlj:
      
        #define PTH_MCTX_MTH_use PTH_MCTX_MTH_sjlj
      
      However, on a "normal" machine, the PTH_MCTX_DSP macro gives ssjlj:
      
        #define PTH_MCTX_DSP_use PTH_MCTX_DSP_ssjlj
      
      While on Nathaniel's autobuilder, it gives:
      
        #define PTH_MCTX_DSP_use PTH_MCTX_DSP_sjljlx
      
      This explains why VARIANT 4 is being used on Nathaniel's autobuilder,
      while VARIANT 2 is used when building on other platforms.
      
      The decision of the value for PTH_MCTX_DSP is derived as follows in
      configure.ac:
      
       AC_CHECK_SJLJ(sjlj=yes, sjlj=no, sjlj_type)
       [...]
       elif test ".$sjlj" = .yes; then
          mctx_mth=sjlj
          mctx_dsp=$sjlj_type
       [...]
       AC_DEFINE_UNQUOTED(PTH_MCTX_DSP_use, [PTH_MCTX_DSP_$mctx_dsp], [define for machine context dispatching])
      
      So basically, the value of PTH_MCTX_DSP is $sjlj_type, as returned by
      the AC_CHECK_SJLJ autoconf macro, implemented in
      acinclude.m4. However, reading this macro is quite informative: it
      does a number of tests that are not cross-compile
      friendly. Especially, it looks at the kernel version with 'uname -r'
      to decide whether the Linux system is braindead or not. If the system
      runs a 2.2.x kernel or newer 2.x, or a 3.x kernel, everything is fine,
      the system is not braindead, and sjlj_type is set to ssjlj. However,
      if the build system runs a 4.x kernel, then it is considered as
      braindead, and sjlj_type is set to sjljlx.
      
      And indeed, Nathaniel's autobuilder is running a 4.x kernel, while all
      other autobuilders run 2.x or 3.x kernels.
      
      Since for all sane Linux systems, this AC_CHECK_SJLJ macro concludes
      that the setjmp/longtmp type is ssjlj, this commit takes the simplest
      route of forcing this value, skipping the broken detection.
      
      Note that we're overriding ac_cv_check_sjlj instead of using the
      --with-mctx-* options, since the latter do not work properly in the
      context of Nathaniel's autobuilder, as the broken cross-compilation
      tests continue to cause problems.
      
      Fixes:
      
        http://autobuild.buildroot.org/results/3dd/3dd66d70c2e36f2d9fb0a0fe01bbdec009d55067/
      
      
        and many similar build failures
      
      This patch has been tested by Nathaniel Roach in the context of his
      autobuilder instance which was causing the original problem.
      
      Tested-by: default avatarNathaniel Roach <nroach44@gmail.com>
      Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@free-electrons.com>
      Tested-by: default avatar"Yann E. MORIN" <yann.morin.1998@free.fr>
      Signed-off-by: default avatarPeter Korsgaard <peter@korsgaard.com>
      97e9db43
  5. Aug 18, 2015
  6. Aug 17, 2015
  7. Aug 10, 2015
Loading