]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
meson: make cpp invocations cross-compilation friendly
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Tue, 11 Apr 2017 14:25:34 +0000 (10:25 -0400)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Mon, 24 Apr 2017 01:47:27 +0000 (21:47 -0400)
This implementation assumes that the arguments in compiler.cmd_array()
don't contain any spaces. Since we are only interested in compilation
on Linux, I think this is a safe assumption.

Solution suggested by Nirbheek Chauhan.

meson.build
src/basic/generate-af-list.sh
src/basic/generate-arphrd-list.sh
src/basic/generate-cap-list.sh
src/basic/generate-errno-list.sh
src/basic/meson.build
src/journal/generate-audit_type-list.sh
src/journal/meson.build
src/udev/generate-keyboard-keys-list.sh
src/udev/meson.build

index 57e439e7332d542b65828836a865002535af59ac..8c01872a2682dd15e475a8d452d47f8512497580 100644 (file)
@@ -295,6 +295,8 @@ foreach arg : ['-Wl,-z,relro',
   endif
 endforeach
 
+cpp = ' '.join(cc.cmd_array()) + ' -E'
+
 #####################################################################
 # compilation result tests
 
index e4f9f68312db12f415ccbf1146ff0db40cb783c3..3fdfe2ea601ab33d79deffb8bedcae12f1b08189 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh
 
-cpp -dM -include sys/socket.h - </dev/null | \
+$1 -E -dM -include sys/socket.h - </dev/null | \
     grep -Ev 'AF_UNSPEC|AF_MAX' | \
     awk '/^#define[ \t]+AF_[^ \t]+[ \t]+PF_[^ \t]/ { print $2; }'
index e4cd8ab6d2671b82012c11d3dad0bed3a2829002..9911f315fa1298844e98a82c8a1c2091d887876f 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh -e
 
-cpp -dM -include net/if_arp.h - </dev/null | \
+$1 -dM -include net/if_arp.h - </dev/null | \
     awk '/^#define[ \t]+ARPHRD_[^ \t]+[ \t]+[^ \t]/ { print $2; }' | \
     sed -e 's/ARPHRD_//'
index de4b44661e4a6b6c8b06b9e792ddb0769b0da69b..b79468cd597c9ec82faccffe48a2d4e449ea88d3 100644 (file)
@@ -1,5 +1,5 @@
 #!/bin/sh -e
 
-cpp -dM -include linux/capability.h -include "$1" -include "$2" - </dev/null | \
+$1 -dM -include linux/capability.h -include "$2" -include "$3" - </dev/null | \
     awk '/^#define[ \t]+CAP_[A-Z_]+[ \t]+/ { print $2; }' | \
     grep -v CAP_LAST_CAP
index 291b118f363941bd4ebb46afddbc12404800937c..a80990ac2424a6078accfca8a6fdb2df726516bf 100644 (file)
@@ -1,4 +1,4 @@
 #!/bin/sh -e
 
-cpp -dM -include errno.h - </dev/null | \
+$1 -dM -include errno.h - </dev/null | \
     awk '/^#define[ \t]+E[^ _]+[ \t]+/ { print $2; }'
index 23caa1c7a50a9d009fc4aa9386c515ce8951d580..17049481aad356539164eb656553da834344a656 100644 (file)
@@ -206,28 +206,28 @@ generate_af_list = find_program('generate-af-list.sh')
 af_list_txt = custom_target(
     'af-list.txt',
     output : 'af-list.txt',
-    command : [generate_af_list],
+    command : [generate_af_list, cpp],
     capture : true)
 
 generate_arphrd_list = find_program('generate-arphrd-list.sh')
 arphrd_list_txt = custom_target(
     'arphrd-list.txt',
     output : 'arphrd-list.txt',
-    command : [generate_arphrd_list],
+    command : [generate_arphrd_list, cpp],
     capture : true)
 
 generate_cap_list = find_program('generate-cap-list.sh')
 cap_list_txt = custom_target(
     'cap-list.txt',
     output : 'cap-list.txt',
-    command : [generate_cap_list, config_h, missing_h],
+    command : [generate_cap_list, cpp, config_h, missing_h],
     capture : true)
 
 generate_errno_list = find_program('generate-errno-list.sh')
 errno_list_txt = custom_target(
     'errno-list.txt',
     output : 'errno-list.txt',
-    command : [generate_errno_list],
+    command : [generate_errno_list, cpp],
     capture : true)
 
 generated_gperf_headers = []
index a8befbfea2f132c28960a4cd478200de71dda6c8..edd2b279944a30be8c19db1e226c4e3ccc8f16fc 100644 (file)
@@ -1,10 +1,14 @@
 #!/bin/sh -e
 
+cpp="$1"
+shift
+
 includes=""
 for i in "$@"; do
     includes="$includes -include $i"
 done
-cpp -dM $includes - </dev/null | \
+
+$cpp -dM $includes - </dev/null | \
     grep -vE 'AUDIT_.*(FIRST|LAST)_' | \
     sed -r -n 's/^#define\s+AUDIT_(\w+)\s+([0-9]{4})\s*$$/\1\t\2/p' | \
     sort -k2
index f06b564c19a5fc3c208f2ae989f33a287bc14a0e..360c52b92d826574566f5677ca0ed4b876f06f5f 100644 (file)
@@ -35,7 +35,7 @@ generate_audit_type_list = find_program('generate-audit_type-list.sh')
 audit_type_list_txt = custom_target(
     'audit_type-list.txt',
     output : 'audit_type-list.txt',
-    command : [generate_audit_type_list] + audit_type_includes,
+    command : [generate_audit_type_list, cpp] + audit_type_includes,
     capture : true)
 
 audit_type_to_name = custom_target(
index cd6ef9c93b10d6303ba2b0e1a8e788bf7d7dab98..91635caebcf486edd69c8d922a65fca9ca8f31df 100644 (file)
@@ -1,4 +1,4 @@
 #!/bin/sh -e
 
-cpp -dM -include linux/input.h - </dev/null | \
+$1 -dM -include linux/input.h - </dev/null | \
     awk '/^#define[ \t]+KEY_[^ ]+[ \t]+[0-9K]/ { if ($2 != "KEY_MAX") { print $2 } }'
index dd8ec53cdfaae31173563658a67ca7d1c6668aef..fdd73046dcd34f312a8a8031ec9dd33783edf315 100644 (file)
@@ -58,7 +58,7 @@ generate_keyboard_keys_list = find_program('generate-keyboard-keys-list.sh')
 keyboard_keys_list_txt = custom_target(
     'keyboard-keys-list.txt',
     output : 'keyboard-keys-list.txt',
-    command : [generate_keyboard_keys_list],
+    command : [generate_keyboard_keys_list, cpp],
     capture : true)
 
 fname = 'keyboard-keys-from-name.gperf'