about summary refs log tree commit diff
path: root/pkgs/tools/X11/xkbvalidate/default.nix
diff options
context:
space:
mode:
authoraszlig <aszlig@nix.build>2019-08-15 00:06:51 +0200
committeraszlig <aszlig@nix.build>2019-08-15 00:59:58 +0200
commit1964b0c1b1e2e8092a15da64bd37838bed261e26 (patch)
tree6db891aa788c2f35f182613207bd74aa2f5d1a94 /pkgs/tools/X11/xkbvalidate/default.nix
parent77e8a12755632d62ef25541e3622f478edaa28c6 (diff)
downloadnixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar
nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.gz
nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.bz2
nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.lz
nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.xz
nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.tar.zst
nixlib-1964b0c1b1e2e8092a15da64bd37838bed261e26.zip
xkbvalidate: Don't rely on GNU extensions
The only reason why I was using _GNU_SOURCE was because of vasprintf(),
so getting rid of that extension should make the source way more
portable.

When using vsnprintf() with a null pointer for the output buffer and a
size of 0, I wasn't quite sure whether this would be undefined
behaviour, so I looked it up in the C11 standard.

In section 7.21.6.5, it explicitly mentions this case, so we're lucky:

  If n is zero, nothing is written, and s may be a null pointer.

Additionally, section 7.21.6.12 writes the following about vsnprintf():

  The vsnprintf function does not invoke the va_end macro.

So to be sure to avoid undefined behaviour I subsequently added the
corresponding va_end() calls.

With this, the platforms attribute is now "unix", because the program
should now even run on OS X, even though it usually wouldn't be needed.

Signed-off-by: aszlig <aszlig@nix.build>
Diffstat (limited to 'pkgs/tools/X11/xkbvalidate/default.nix')
-rw-r--r--pkgs/tools/X11/xkbvalidate/default.nix4
1 files changed, 2 insertions, 2 deletions
diff --git a/pkgs/tools/X11/xkbvalidate/default.nix b/pkgs/tools/X11/xkbvalidate/default.nix
index c4aec30e7241..2855d03120fd 100644
--- a/pkgs/tools/X11/xkbvalidate/default.nix
+++ b/pkgs/tools/X11/xkbvalidate/default.nix
@@ -5,11 +5,11 @@ runCommandCC "xkbvalidate" {
   meta = {
     description = "NixOS tool to validate X keyboard configuration";
     license = lib.licenses.mit;
-    platforms = lib.platforms.linux;
+    platforms = lib.platforms.unix;
     maintainers = [ lib.maintainers.aszlig ];
   };
 } ''
   mkdir -p "$out/bin"
-  $CC -std=gnu11 -Wall -pedantic -lxkbcommon ${./xkbvalidate.c} \
+  $CC -std=c11 -Wall -pedantic -lxkbcommon ${./xkbvalidate.c} \
     -o "$out/bin/validate"
 ''