Skip to content
Snippets Groups Projects
  1. Jul 05, 2021
  2. May 11, 2021
  3. Apr 26, 2021
  4. Apr 22, 2021
  5. Mar 23, 2021
    • Simon McVittie's avatar
      inspect-library: Add a line-based octal output format · f0f32d07
      Simon McVittie authored
      
      Instead of trying to format JSON using only glibc, this just prints
      key=value lines, some of which can be repeated. The values always have
      control characters and backslashes escaped as C-style octal sequences
      such as \040 for space, similar to the encoding of /etc/fstab. This
      allows non-UTF-8 bytestrings to be represented.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      f0f32d07
    • Simon McVittie's avatar
      inspect-library: Don't print non-ASCII as nonsense codepoints · 869b7c0d
      Simon McVittie authored
      If we pass a (signed) char to a varargs function, it's promoted to
      (signed) int by the default argument promotions (resulting in padding
      on the left by copying the sign bit); but then %x interprets it as an
      unsigned int. The practical result is that for anything over 0x7f, for
      example 0xAB, we interpret the high bit as the sign bit and pad with
      "1" bits, turning 0xAB into 0xFFFFFFAB. \uFFFFFFAB is not allowed as an
      escaped JSON character (because Unicode stops at U+10FFFF) so parsing
      fails.
      
      Note that this change does not result in strings with non-ASCII content
      being interpreted *correctly*: we are effectively taking the bytestring
      from the OS and decoding it as though it was ISO-8859-1, so if a file's
      path includes U+00C7 LATIN CAPITAL_LETTER C WITH CEDILLA (`Ç`), encoded
      as 0xC3 0x87 on disk (assuming a UTF-8 environment), it will go into
      the JSON document as \u00C3\u0087 instead of the correct \u00C7. Fixing
      this would require either a considerably more complex implementation of
      inspect-library, or an output format that is based on bytestrings
      rather than JSON.
      
      Partially addresses
      https://github.com/ValveSoftware/steam-runtime/issues/385 and
      #69
      
      .
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      869b7c0d
  6. Jan 27, 2021
  7. Jan 26, 2021
  8. Jan 25, 2021
  9. Jan 20, 2021
  10. Nov 26, 2020
  11. Nov 09, 2020
  12. Oct 26, 2020
  13. Sep 25, 2020
  14. Sep 08, 2020
  15. Jun 24, 2020
  16. Apr 20, 2020
  17. Mar 13, 2020
  18. Mar 05, 2020
  19. Feb 27, 2020
  20. Jan 09, 2020
    • Simon McVittie's avatar
      build: Consistently sort dependencies in stack order · 9a3cfb41
      Simon McVittie authored
      
      It's slightly preferable to list linker and compiler flags in stack
      order, with the lowest in the stack first. This allows use of a
      higher-level library from a non-standard prefix without also necessarily
      picking up lower-level libraries from the same non-standard-prefix.
      For example, if /path/to/json-glib also includes a copy of GLib, then
      
          -L/path/to/glib -lglib-2.0 -L/path/to/json-glib -ljson-glib-1.0
      
      will link the GLib from /path/to/glib, but
      
          -L/path/to/json-glib -ljson-glib-1.0 -L/path/to/glib -lglib-2.0
      
      will link both the GLib and the json-glib from /path/to/json-glib.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      9a3cfb41
  21. Nov 20, 2019
    • Jeremy Whiting's avatar
      Add check-gl draw a triangle test. · fa6dd524
      Jeremy Whiting authored
      Just as with check-vulkan use --visible to see the triangle window
      otherwise application draws a few frames and reports any gl errors
      found or does exit 0 on success.
      fa6dd524
  22. Nov 15, 2019
    • Simon McVittie's avatar
      Build -system-info and -check-locale with relative DT_RPATH · c3a06cce
      Simon McVittie authored
      
      This ensures that they can find the non-ubiquitous json-glib library,
      and the steam-runtime-tools library, even if relocated into a
      non-standard prefix like the LD_LIBRARY_PATH Steam Runtime.
      
      We can't just use a relative version of the standard library directory
      as our RPATH, because if we did that, we would load glibc from the
      same place. This causes crashes in pressure-vessel, where ld.so and
      the rest of glibc are often taken from the host system via
      /overrides/lib, and the glibc in /lib and /usr/lib is incompatible
      with ld.so. Instead, use a private library directory and populate it
      with relative symlinks to our non-glibc dependencies; we assume the
      host version of glibc is new enough that this is OK.
      
      Using DT_RPATH in preference to DT_RUNPATH means we take all our direct
      and indirect dependencies from the same place. This is important when
      libjson-glib (which won't ordinarily have a RUNPATH or RPATH) pulls in
      GIO as an indirect dependency of check-locale, which doesn't directly
      depend on GIO. The GIO library we get must match the versions of GLib
      and GObject we're using.
      
      This also bypasses LD_LIBRARY_PATH.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      c3a06cce
  23. Nov 13, 2019
    • Simon McVittie's avatar
      Revert "Build -system-info and -check-locale with relative DT_RPATH" · a32d9290
      Simon McVittie authored
      
      This made them usable from outside the LD_LIBRARY_PATH runtime, but breaks
      their use inside a pressure-vessel container. In pressure-vessel, the
      glibc family of libraries are typically taken from outside the container
      (for example /overrides/lib/x86_64-linux-gnu/libc.so.6), and the dynamic
      linker ld.so is replaced with one that is suitable for the libraries
      in /overrides. In general, these versions will be incompatible with the
      ones in /usr/lib/x86_64-linux-gnu, which unfortunately are the ones that
      get pulled in via the DT_RPATH.
      
      This reverts commit 91478a07.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      a32d9290
  24. Nov 11, 2019
  25. Nov 08, 2019
    • Simon McVittie's avatar
      Build -system-info and -check-locale with relative DT_RPATH · 91478a07
      Simon McVittie authored
      
      This ensures that they can find the non-ubiquitous json-glib library,
      and the steam-runtime-tools library, even if relocated into a
      non-standard prefix like the LD_LIBRARY_PATH Steam Runtime.
      
      Using DT_RPATH in preference to DT_RUNPATH means we take all our direct
      and indirect dependencies from the same place. This is important when
      libjson-glib (which won't ordinarily have a RUNPATH or RPATH) pulls in
      GIO as an indirect dependency of check-locale, which doesn't directly
      depend on GIO. The GIO library we get must match the versions of GLib
      and GObject we're using.
      
      This also bypasses LD_LIBRARY_PATH.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      91478a07
    • Simon McVittie's avatar
      check-vulkan: Add missing braces for initialization of subobject · 4b9ec1ec
      Simon McVittie authored
      
      VkClearValue is a struct whose first member is a union whose first
      member is an array of four floats, so we need three levels of braces
      to initialize it. clang++ 8 warns for this.
      
      Signed-off-by: default avatarSimon McVittie <smcv@collabora.com>
      4b9ec1ec
  26. Nov 05, 2019
Loading