2 handlers_lib="$LIBDIR/da_probe_tizen.so"
3 loader_library_pattern="libdl[.-].*"
4 linker_library_pattern="ld-.*"
6 libpthread_pkg_name="glibc"
7 libsmack_pkg_name="libsmack"
8 libpthread_init_func="__pthread_initialize_minimal"
13 function print_header()
18 PATH=/bin:/usr/bin:/sbin:/usr/sbin
22 function print_loader()
26 loader_path=$(rpm -ql $libc_pkg_name | grep "$loader_library_pattern" | head -1)
27 echo -e "/bin/echo \"$loader_path\" > /sys/kernel/debug/swap/preload/ignored_binaries/bins_add" >> $filename
30 function print_linker()
34 linker_path=$(rpm -ql $libc_pkg_name | grep "$linker_library_pattern" | head -1)
35 echo -e "/bin/echo \"$linker_path\" > /sys/kernel/debug/swap/preload/ignored_binaries/bins_add" >> $filename
38 function print_probe_lib()
41 echo -e "/bin/echo \"$handlers_lib\" > /sys/kernel/debug/swap/preload/handler" >> $filename
48 echo -e "/bin/echo /$LIB/libc.so.6 > /sys/kernel/debug/swap/preload/ignored_binaries/bins_add" >> $filename
51 function print_libpthread()
55 libpthread_path=$(rpm -ql $libpthread_pkg_name | grep "libpthread" | head -1)
56 addr=$(parse_elf -f $libpthread_path --addr_format=swap --syms | grep $libpthread_init_func | awk '{print "0x" $1}')
58 echo -e "/bin/echo \"$libpthread_path\" > /sys/kernel/debug/swap/preload/ignored_binaries/bins_add" >> $filename
59 echo -e "/bin/echo \"$libpthread_path\" > /sys/kernel/debug/swap/preload/pthread/path" >> $filename
60 echo -e "/bin/echo $addr > /sys/kernel/debug/swap/preload/pthread/minimal_init_off" >> $filename
63 function print_libsmack()
67 libsmack_path=$(rpm -ql $libsmack_pkg_name | grep "libsmack" | head -1)
68 echo -e "/bin/echo \"$libsmack_path\" > /sys/kernel/debug/swap/preload/ignored_binaries/bins_add" >> $filename
71 function print_ignored()
76 print_libpthread $filename
77 print_loader $filename
78 print_linker $filename
79 print_libsmack $filename
82 function print_enable()
86 echo -e "/bin/echo \"1\" > /sys/kernel/debug/swap/preload/enable" >> $filename
89 ##################################
90 # Script entry point #
91 ##################################
95 print_probe_lib $output
100 grep 0x0000000000000000 $output && echo "ERROR: generate preload info" >&2 && exit 1