1*2d543d20SAndroid Build Coastguard Worker#!/bin/bash 2*2d543d20SAndroid Build Coastguard Worker 3*2d543d20SAndroid Build Coastguard Workerfunction except() { 4*2d543d20SAndroid Build Coastguard Workercase $1 in 5*2d543d20SAndroid Build Coastguard Worker selinux_file_context_cmp) # ignore 6*2d543d20SAndroid Build Coastguard Worker ;; 7*2d543d20SAndroid Build Coastguard Worker *) 8*2d543d20SAndroid Build Coastguard Workerecho " 9*2d543d20SAndroid Build Coastguard Worker%exception $1 { 10*2d543d20SAndroid Build Coastguard Worker \$action 11*2d543d20SAndroid Build Coastguard Worker if (result < 0) { 12*2d543d20SAndroid Build Coastguard Worker PyErr_SetFromErrno(PyExc_OSError); 13*2d543d20SAndroid Build Coastguard Worker SWIG_fail; 14*2d543d20SAndroid Build Coastguard Worker } 15*2d543d20SAndroid Build Coastguard Worker}" 16*2d543d20SAndroid Build Coastguard Worker;; 17*2d543d20SAndroid Build Coastguard Workeresac 18*2d543d20SAndroid Build Coastguard Worker} 19*2d543d20SAndroid Build Coastguard Worker 20*2d543d20SAndroid Build Coastguard Worker# Make sure that selinux.h is included first in order not to depend on the order 21*2d543d20SAndroid Build Coastguard Worker# in which "#include <selinux/selinux.h>" appears in other files. 22*2d543d20SAndroid Build Coastguard WorkerFILE_LIST=( 23*2d543d20SAndroid Build Coastguard Worker ../include/selinux/selinux.h 24*2d543d20SAndroid Build Coastguard Worker ../include/selinux/avc.h 25*2d543d20SAndroid Build Coastguard Worker ../include/selinux/context.h 26*2d543d20SAndroid Build Coastguard Worker ../include/selinux/get_context_list.h 27*2d543d20SAndroid Build Coastguard Worker ../include/selinux/get_default_type.h 28*2d543d20SAndroid Build Coastguard Worker ../include/selinux/label.h 29*2d543d20SAndroid Build Coastguard Worker ../include/selinux/restorecon.h 30*2d543d20SAndroid Build Coastguard Worker) 31*2d543d20SAndroid Build Coastguard Workerif ! cat "${FILE_LIST[@]}" | ${CC:-gcc} -x c -c -I../include -o temp.o - -aux-info temp.aux 32*2d543d20SAndroid Build Coastguard Workerthen 33*2d543d20SAndroid Build Coastguard Worker # clang does not support -aux-info so fall back to gcc 34*2d543d20SAndroid Build Coastguard Worker cat "${FILE_LIST[@]}" | gcc -x c -c -I../include -o temp.o - -aux-info temp.aux 35*2d543d20SAndroid Build Coastguard Workerfi 36*2d543d20SAndroid Build Coastguard Workerfor i in `awk '/<stdin>.*extern int/ { print $6 }' temp.aux`; do except $i ; done 37*2d543d20SAndroid Build Coastguard Workerrm -f -- temp.aux temp.o 38