aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorge Burgess IV <gbiv@google.com>2017-01-31 21:09:16 +0000
committerandroid-build-merger <android-build-merger@google.com>2017-01-31 21:09:16 +0000
commit8344c107578ba9c703dc564dafce00929d148452 (patch)
tree939162d33292e6210a9c4f08b77e22fe942cfbbd
parent5245bb626daf32a4253a2832441e7cddcd08f4a2 (diff)
parent49b4d31406f4436d3d77637662d252b6c810d010 (diff)
downloadltp-8344c107578ba9c703dc564dafce00929d148452.tar.gz
Add custom, per-module cflags for LTP
am: 49b4d31406 Change-Id: I66409c4fcb7022152900f4149c09095ff27aec18
-rw-r--r--android/Android.ltp.mk38
-rw-r--r--android/tools/android_mk_generator.py36
-rw-r--r--android/tools/custom_cflags.json3
-rwxr-xr-xandroid/tools/gen_android_mk.sh4
4 files changed, 59 insertions, 22 deletions
diff --git a/android/Android.ltp.mk b/android/Android.ltp.mk
index a88ee6baf..2a9cf417a 100644
--- a/android/Android.ltp.mk
+++ b/android/Android.ltp.mk
@@ -130,7 +130,7 @@ module_src_files := testcases/kernel/security/securebits/check_keepcaps.c
module_cflags :=
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/numa/support_numa
@@ -474,7 +474,7 @@ module_src_files := testcases/kernel/containers/userns/userns06_capcheck.c
module_cflags :=
module_c_includes := testcases/kernel/include testcases/kernel/containers/libclone include include/old
module_static_libraries := clone ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/renameat2/renameat201
@@ -1626,7 +1626,7 @@ module_src_files := testcases/kernel/containers/userns/userns02.c
module_cflags :=
module_c_includes := testcases/kernel/include testcases/kernel/containers/libclone include include/old
module_static_libraries := clone ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/mem/ksm/ksm06
@@ -2170,7 +2170,7 @@ module_src_files := testcases/kernel/security/cap_bound/cap_bounds_rw.c
module_cflags :=
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/fcntl/fcntl31
@@ -3506,7 +3506,7 @@ module_src_files := testcases/kernel/containers/userns/userns05.c
module_cflags :=
module_c_includes := testcases/kernel/include testcases/kernel/containers/libclone include include/old
module_static_libraries := clone ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/ioperm/ioperm01
@@ -4010,7 +4010,7 @@ module_src_files := testcases/kernel/security/filecaps/check_simple_capset.c
module_cflags := -D_GNU_SOURCE
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/mem/swapping/swapping01
@@ -4042,7 +4042,7 @@ module_src_files := testcases/kernel/security/filecaps/inh_capped.c
module_cflags := -D_GNU_SOURCE
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/controllers/cpuctl_fj/cpuctl_fj_cpu-hog
@@ -4058,7 +4058,7 @@ module_src_files := testcases/kernel/containers/userns/userns01.c
module_cflags :=
module_c_includes := testcases/kernel/include testcases/kernel/containers/libclone include include/old
module_static_libraries := clone ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/removexattr/removexattr01
@@ -4322,7 +4322,7 @@ module_src_files := testcases/kernel/security/cap_bound/exec_with_inh.c
module_cflags :=
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/recv/recv01
@@ -4570,7 +4570,7 @@ module_src_files := testcases/kernel/security/cap_bound/cap_bset_inh_bounds.c
module_cflags :=
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/security/filecaps/print_caps
@@ -4578,7 +4578,7 @@ module_src_files := testcases/kernel/security/filecaps/print_caps.c
module_cflags := -D_GNU_SOURCE
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/mem/mem/mem02
@@ -5074,7 +5074,7 @@ module_src_files := testcases/kernel/containers/userns/userns04.c
module_cflags :=
module_c_includes := testcases/kernel/include testcases/kernel/containers/libclone include include/old
module_static_libraries := clone ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/open/open07
@@ -5106,7 +5106,7 @@ module_src_files := testcases/kernel/containers/userns/userns07.c
module_cflags :=
module_c_includes := testcases/kernel/include testcases/kernel/containers/libclone include include/old
module_static_libraries := clone ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/mem/ksm/ksm04
@@ -5487,7 +5487,7 @@ include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/getcwd/getcwd02
module_src_files := testcases/kernel/syscalls/getcwd/getcwd02.c
-module_cflags :=
+module_cflags := -U_FORTIFY_SOURCE
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
module_shared_libraries :=
@@ -5594,7 +5594,7 @@ module_src_files := testcases/kernel/containers/userns/userns03.c
module_cflags :=
module_c_includes := testcases/kernel/include testcases/kernel/containers/libclone include include/old
module_static_libraries := clone ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/pause/pause01
@@ -5802,7 +5802,7 @@ module_src_files := testcases/kernel/security/cap_bound/cap_bounds_r.c
module_cflags :=
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/nice/nice02
@@ -7426,7 +7426,7 @@ module_src_files := testcases/kernel/security/cap_bound/exec_without_inh.c
module_cflags :=
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/dup3/dup3_02
@@ -7938,7 +7938,7 @@ module_src_files := testcases/kernel/containers/userns/userns06.c
module_cflags :=
module_c_includes := testcases/kernel/include testcases/kernel/containers/libclone include include/old
module_static_libraries := clone ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/select/select04
@@ -8434,7 +8434,7 @@ module_src_files := testcases/kernel/security/cap_bound/check_pe.c
module_cflags :=
module_c_includes := testcases/kernel/include include include/old
module_static_libraries := ltp
-module_shared_libraries :=
+module_shared_libraries := cap
include $(ltp_build_test)
module_testname := testcases/kernel/syscalls/execvp/execvp01
diff --git a/android/tools/android_mk_generator.py b/android/tools/android_mk_generator.py
index 2e103359c..709dbd22b 100644
--- a/android/tools/android_mk_generator.py
+++ b/android/tools/android_mk_generator.py
@@ -23,6 +23,7 @@
import argparse
import fileinput
+import json
import os.path
import re
@@ -41,10 +42,16 @@ class AndroidMkGenerator(object):
Attributes:
result: list of string, result string buffer
+ _custom_cflags: dict of string (module name) to lists of strings (cflags
+ to add for said module)
+ _unused_custom_cflags: set of strings; tracks the modules with custom
+ cflags that we haven't yet seen
'''
- def __init__(self):
+ def __init__(self, custom_cflags):
self.result = []
+ self._custom_cflags = custom_cflags
+ self._unused_custom_cflags = set(custom_cflags)
def UniqueKeepOrder(self, sequence):
'''Get a copy of list where items are unique and order is preserved.
@@ -104,6 +111,10 @@ class AndroidMkGenerator(object):
return
ltp_names_used.add(base_name)
+ if cc_target in self._custom_cflags:
+ local_cflags.extend(self._custom_cflags[cc_target])
+ self._unused_custom_cflags.remove(cc_target)
+
self.result.append('module_testname := %s' % cc_target)
self.result.append('module_src_files := %s' %
' '.join(local_src_files))
@@ -336,6 +347,10 @@ class AndroidMkGenerator(object):
parser = make_install_parser.MakeInstallParser(ltp_root)
self.ParseInput(parser.ParseFile(MAKE_INSTALL_DRY_RUN_FILE_NAME))
+ def GetUnusedCustomCFlagsTargets(self):
+ '''Get targets that have custom cflags, but that weren't built.'''
+ return list(self._unused_custom_cflags)
+
def main():
parser = argparse.ArgumentParser(
@@ -347,12 +362,29 @@ def main():
dest='output_path',
required=True,
help='output file path')
+ parser.add_argument(
+ '--custom_cflags_file',
+ dest='custom_cflags_file',
+ required=True,
+ help='file with custom per-module cflags. empty means no file.')
args = parser.parse_args()
- generator = AndroidMkGenerator()
+ custom_cflags = {}
+ if args.custom_cflags_file:
+ # The file is expected to just be a JSON map of string -> [string], e.g.
+ # {"testcases/kernel/syscalls/getcwd/getcwd02": ["-DFOO", "-O3"]}
+ with open(args.custom_cflags_file) as f:
+ custom_cflags = json.load(f)
+
+ generator = AndroidMkGenerator(custom_cflags)
generator.ParseAll(args.ltp_root)
generator.WriteResult(args.output_path)
+ unused_cflags_targs = generator.GetUnusedCustomCFlagsTargets()
+ if unused_cflags_targs:
+ print 'NOTE: Tests had custom cflags, but were never seen: {}'.format(
+ ', '.join(unused_cflags_targs))
+
print 'Finished!'
diff --git a/android/tools/custom_cflags.json b/android/tools/custom_cflags.json
new file mode 100644
index 000000000..64d085e2c
--- /dev/null
+++ b/android/tools/custom_cflags.json
@@ -0,0 +1,3 @@
+{
+ "testcases/kernel/syscalls/getcwd/getcwd02": ["-U_FORTIFY_SOURCE"]
+}
diff --git a/android/tools/gen_android_mk.sh b/android/tools/gen_android_mk.sh
index 1dac64b8a..bf1c8803f 100755
--- a/android/tools/gen_android_mk.sh
+++ b/android/tools/gen_android_mk.sh
@@ -18,6 +18,7 @@
TOOLS_DIR=$(realpath $(dirname $0))
LTP_ANDROID_DIR=$(realpath $TOOLS_DIR/..)
LTP_ROOT=$(realpath $LTP_ANDROID_DIR/..)
+CUSTOM_CFLAGS_PATH=$TOOLS_DIR/custom_cflags.json
OUTPUT=$LTP_ANDROID_DIR/Android.ltp.mk
if ! [ -f $LTP_ROOT/include/config.h ]; then
@@ -53,4 +54,5 @@ echo "" >> $OUTPUT
echo "# This file is autogenerated by $(basename $0)" >> $OUTPUT
echo "" >> $OUTPUT
-python android_mk_generator.py --ltp_root $LTP_ROOT --output_path $OUTPUT \ No newline at end of file
+python android_mk_generator.py --ltp_root $LTP_ROOT --output_path $OUTPUT \
+ --custom_cflags_file $CUSTOM_CFLAGS_PATH