diff options
author | George Burgess IV <gbiv@google.com> | 2017-01-31 21:09:16 +0000 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2017-01-31 21:09:16 +0000 |
commit | 8344c107578ba9c703dc564dafce00929d148452 (patch) | |
tree | 939162d33292e6210a9c4f08b77e22fe942cfbbd | |
parent | 5245bb626daf32a4253a2832441e7cddcd08f4a2 (diff) | |
parent | 49b4d31406f4436d3d77637662d252b6c810d010 (diff) | |
download | ltp-8344c107578ba9c703dc564dafce00929d148452.tar.gz |
Add custom, per-module cflags for LTP
am: 49b4d31406
Change-Id: I66409c4fcb7022152900f4149c09095ff27aec18
-rw-r--r-- | android/Android.ltp.mk | 38 | ||||
-rw-r--r-- | android/tools/android_mk_generator.py | 36 | ||||
-rw-r--r-- | android/tools/custom_cflags.json | 3 | ||||
-rwxr-xr-x | android/tools/gen_android_mk.sh | 4 |
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 |