当前位置: 首页 > news >正文

libapparmor非默认目录构建和安装

在AppArmor零知识学习五、源码构建(2)中,详细介绍了libapparmor的构建步骤,但那完全使用的是官网给出的默认参数。如果需要将目标文件生成到指定目录而非默认的/usr,则需要进行一些修改,本文就来详述如何进行修改。

在进行libapparmor等组件的构建前,还是需要先进行环境变量配置。这一步与之前并无不同,参见:AppArmor零知识学习四、源码构建(1)

接下来,开始libapparmor自定义安装目录的构建和安装。

(1)配置

运行configure进行配置,实际命令及结果如下(注意--prefix=的参数):

$  ./configure --prefix=/usr/local --with-perl --with-python
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make supports the include directive... yes (GNU style)
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
checking for suffix of executables... 
checking whether we are cross compiling... no
checking for suffix of object files... o
checking whether the compiler supports GNU C... yes
checking whether gcc accepts -g... yes
checking for gcc option to enable C11 features... none needed
checking whether gcc understands -c and -o together... yes
checking dependency style of gcc... gcc3
checking for flex... flex
checking for lex output file root... lex.yy
checking for lex library... none needed
checking for library containing yywrap... no
checking whether yytext is a pointer... yes
checking for bison... bison -y
checking for a sed that does not truncate output... /usr/bin/sed
checking for pkg-config... /usr/bin/pkg-config
checking pkg-config is at least version 0.9.0... yes
checking for swig... /usr/bin/swig
checking whether the libapparmor debug output should be enabled... no
checking whether the libapparmor man pages should be generated... yes
checking for podchecker... podchecker
checking for pod2man... pod2man
checking whether python bindings are enabled... yes
checking for python3... /usr/bin/python3
checking for python3... (cached) /usr/bin/python3
checking for python3-config... /usr/bin/python3-config
checking for a version of Python >= '2.1.0'... yes
checking for the setuptools Python package... yes
checking for Python include path... /usr/bin/python3-config is /usr/bin/python3-config
-I/usr/include/python3.10 -I/usr/include/python3.10
checking for Python library path... /usr/bin/python3-config is /usr/bin/python3-config-L/usr/lib  -lcrypt -ldl  -lm -lm 
checking for Python site-packages path... /usr/lib/python3.10/site-packages
checking python extra libraries... /usr/bin/python3-config is /usr/bin/python3-config
-lpython3.10 -lcrypt -ldl  -lm -lm 
checking python extra linking flags... /usr/bin/python3-config is /usr/bin/python3-config-L/usr/lib -lpython3.10 -lcrypt -ldl  -lm -lm 
checking consistency of all components of python development environment... yes
checking whether /usr/bin/python3 version is >= 3.0... yes
checking for /usr/bin/python3 version... 3.10
checking for /usr/bin/python3 platform... linux
checking for GNU default /usr/bin/python3 prefix... ${prefix}
checking for GNU default /usr/bin/python3 exec_prefix... ${exec_prefix}
checking for /usr/bin/python3 script directory (pythondir)... ${PYTHON_PREFIX}/lib/python3.10/site-packages
checking for /usr/bin/python3 extension module directory (pyexecdir)... ${PYTHON_EXEC_PREFIX}/lib/python3.10/site-packages
checking whether perl bindings are enabled... yes
checking for perl... /usr/bin/perl
checking whether ruby bindings are enabled... no
checking for stdio.h... yes
checking for stdlib.h... yes
checking for string.h... yes
checking for inttypes.h... yes
checking for stdint.h... yes
checking for strings.h... yes
checking for sys/stat.h... yes
checking for sys/types.h... yes
checking for unistd.h... yes
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for unistd.h... (cached) yes
checking for stdint.h... (cached) yes
checking for syslog.h... yes
checking for asprintf... yes
checking for __secure_getenv... no
checking for secure_getenv... yes
checking for reallocarray... yes
checking for an ANSI C-conforming const... yes
checking build system type... x86_64-pc-linux-gnu
checking host system type... x86_64-pc-linux-gnu
checking how to print strings... printf
checking for a sed that does not truncate output... (cached) /usr/bin/sed
checking for fgrep... /usr/bin/grep -F
checking for ld used by gcc... /usr/bin/ld
checking if the linker (/usr/bin/ld) is GNU ld... yes
checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B
checking the name lister (/usr/bin/nm -B) interface... BSD nm
checking whether ln -s works... yes
checking the maximum length of command line arguments... 1572864
checking how to convert x86_64-pc-linux-gnu file names to x86_64-pc-linux-gnu format... func_convert_file_noop
checking how to convert x86_64-pc-linux-gnu file names to toolchain format... func_convert_file_noop
checking for /usr/bin/ld option to reload object files... -r
checking for file... file
checking for objdump... objdump
checking how to recognize dependent libraries... pass_all
checking for dlltool... no
checking how to associate runtime and link libraries... printf %s\n
checking for ar... ar
checking for archiver @FILE support... @
checking for strip... strip
checking for ranlib... ranlib
checking command to parse /usr/bin/nm -B output from gcc object... ok
checking for sysroot... no
checking for a working dd... /usr/bin/dd
checking how to truncate binary pipes... /usr/bin/dd bs=4096 count=1
file: could not find any valid magic files! (No such file or directory)
checking for mt... mt
checking if mt is a manifest tool... no
checking for dlfcn.h... yes
checking for objdir... .libs
checking if gcc supports -fno-rtti -fno-exceptions... no
checking for gcc option to produce PIC... -fPIC -DPIC
checking if gcc PIC flag -fPIC -DPIC works... yes
checking if gcc static flag -static works... yes
checking if gcc supports -c -o file.o... yes
checking if gcc supports -c -o file.o... (cached) yes
checking whether the gcc linker (/usr/bin/ld) supports shared libraries... yes
checking whether -lc should be explicitly linked in... no
checking dynamic linker characteristics... GNU/Linux ld.so
checking how to hardcode library paths into programs... immediate
checking whether stripping libraries is possible... yes
checking if libtool supports shared libraries... yes
checking whether to build shared libraries... yes
checking whether to build static libraries... yes
checking that generated files are newer than configure... done
configure: creating ./config.status
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating src/Makefile
config.status: creating swig/Makefile
config.status: creating swig/perl/Makefile
config.status: creating swig/perl/Makefile.PL
config.status: creating swig/python/Makefile
config.status: creating swig/python/setup.py
config.status: creating swig/python/test/Makefile
config.status: creating swig/ruby/Makefile
config.status: creating testsuite/Makefile
config.status: creating testsuite/config/Makefile
config.status: creating testsuite/libaalogparse.test/Makefile
config.status: creating testsuite/lib/Makefile
config.status: creating include/Makefile
config.status: creating include/sys/Makefile
config.status: executing depfiles commands
config.status: executing libtool commands

(2)编译

运行make命令进行编译,实际命令及结果如下:

$ make
Making all in doc
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/doc”
podchecker -warnings -warnings aa_change_hat.pod
aa_change_hat.pod pod syntax OK.
pod2man \--section=2 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_change_hat.pod > aa_change_hat.2
podchecker -warnings -warnings aa_change_profile.pod
aa_change_profile.pod pod syntax OK.
pod2man \--section=2 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_change_profile.pod > aa_change_profile.2
podchecker -warnings -warnings aa_stack_profile.pod
aa_stack_profile.pod pod syntax OK.
pod2man \--section=2 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_stack_profile.pod > aa_stack_profile.2
podchecker -warnings -warnings aa_getcon.pod
aa_getcon.pod pod syntax OK.
pod2man \--section=2 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_getcon.pod > aa_getcon.2
podchecker -warnings -warnings aa_find_mountpoint.pod
*** WARNING: multiple occurrences (2) of link target 'EACCES' at line - in file aa_find_mountpoint.pod
*** WARNING: multiple occurrences (2) of link target 'EBUSY' at line - in file aa_find_mountpoint.pod
*** WARNING: multiple occurrences (2) of link target 'ENOENT' at line - in file aa_find_mountpoint.pod
*** WARNING: multiple occurrences (2) of link target 'ENOMEM' at line - in file aa_find_mountpoint.pod
aa_find_mountpoint.pod pod syntax OK.
pod2man \--section=2 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_find_mountpoint.pod > aa_find_mountpoint.2
podchecker -warnings -warnings aa_splitcon.pod
aa_splitcon.pod pod syntax OK.
pod2man \--section=3 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_splitcon.pod > aa_splitcon.3
podchecker -warnings -warnings aa_query_label.pod
aa_query_label.pod pod syntax OK.
pod2man \--section=2 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_query_label.pod > aa_query_label.2
podchecker -warnings -warnings aa_features.pod
aa_features.pod pod syntax OK.
pod2man \--section=3 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_features.pod > aa_features.3
podchecker -warnings -warnings aa_kernel_interface.pod
aa_kernel_interface.pod pod syntax OK.
pod2man \--section=3 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_kernel_interface.pod > aa_kernel_interface.3
podchecker -warnings -warnings aa_policy_cache.pod
aa_policy_cache.pod pod syntax OK.
pod2man \--section=3 \--release="AppArmor 3.1.0" \--center="AppArmor" \--stderr \aa_policy_cache.pod > aa_policy_cache.3
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/doc”
Making all in src
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
/bin/sh ../ylwrap grammar.y y.tab.c grammar.c y.tab.h `echo grammar.c | sed -e s/cc$/hh/ -e s/cpp$/hpp/ -e s/cxx$/hxx/ -e s/c++$/h++/ -e s/c$/h/` y.output grammar.output -- bison -y -d -p aalogparse_ 
/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src/grammar.y:86.1-8: 警告: POSIX Yacc does not support %defines [-Wyacc]86 | %defines| ^~~~~~~~
/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src/grammar.y:92.1-7: 警告: POSIX Yacc does not support %define [-Wyacc]92 | %define api.pure| ^~~~~~~
/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src/grammar.y:196.1-11: 警告: POSIX Yacc does not support %destructor [-Wyacc]196 | %destructor { free($$); } TOK_QUOTED_STRING TOK_ID TOK_MODE TOK_DMESG_STAMP| ^~~~~~~~~~~
/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src/grammar.y:197.1-11: 警告: POSIX Yacc does not support %destructor [-Wyacc]197 | %destructor { free($$); } TOK_AUDIT_DIGITS TOK_DATE_MONTH TOK_DATE TOK_TIME| ^~~~~~~~~~~
/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src/grammar.y:198.1-11: 警告: POSIX Yacc does not support %destructor [-Wyacc]198 | %destructor { free($$); } TOK_HEXSTRING TOK_TYPE_OTHER TOK_MSG_REST| ^~~~~~~~~~~
/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src/grammar.y:199.1-11: 警告: POSIX Yacc does not support %destructor [-Wyacc]199 | %destructor { free($$); } TOK_IP_ADDR| ^~~~~~~~~~~
updating grammar.h
flex -v scanner.l
flex version 2.6.4 usage statistics:scanner options: ---reentrant--bison-bridgevI8 -Cem -oscanner.c -Paalogparse_1320/2000 NFA states676/1000 DFA states (2760 words)137 rulesCompressed tables always back-up12/40 start conditions528 epsilon states, 208 double epsilon states44/100 character classes needed 560/750 words of storage, 0 reused25479 state/nextstate pairs created1628/23851 unique/duplicate transitions697/1000 base-def entries created1654/2000 (peak 2605) nxt-chk entries created189/2500 (peak 1407) template nxt-chk entries created0 empty table entries23 protos created21 templates created, 489 uses67/256 equivalence classes created9/256 meta-equivalence classes created2 (26 saved) hash collisions, 977 DFAs equal2 sets of reallocations needed5025 total table entries needed
echo '#include <netinet/in.h>' | gcc  -E -dM - | LC_ALL=C  sed  -n -e "/IPPROTO_MAX/d"  -e "s/^\#define[ \\t]\\+IPPROTO_\\([A-Z0-9_]\\+\\)\\(.*\\)$/AA_GEN_PROTO_ENT(\\UIPPROTO_\\1, \"\\L\\1\")/p" > af_protos.h
make  all-am
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT grammar.lo -MD -MP -MF .deps/grammar.Tpo -c -o grammar.lo grammar.c
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT grammar.lo -MD -MP -MF .deps/grammar.Tpo -c grammar.c  -fPIC -DPIC -o .libs/grammar.o
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT grammar.lo -MD -MP -MF .deps/grammar.Tpo -c grammar.c -o grammar.o >/dev/null 2>&1
mv -f .deps/grammar.Tpo .deps/grammar.Plo
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT libaalogparse.lo -MD -MP -MF .deps/libaalogparse.Tpo -c -o libaalogparse.lo libaalogparse.c
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT libaalogparse.lo -MD -MP -MF .deps/libaalogparse.Tpo -c libaalogparse.c  -fPIC -DPIC -o .libs/libaalogparse.o
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT libaalogparse.lo -MD -MP -MF .deps/libaalogparse.Tpo -c libaalogparse.c -o libaalogparse.o >/dev/null 2>&1
mv -f .deps/libaalogparse.Tpo .deps/libaalogparse.Plo
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT kernel.lo -MD -MP -MF .deps/kernel.Tpo -c -o kernel.lo kernel.c
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT kernel.lo -MD -MP -MF .deps/kernel.Tpo -c kernel.c  -fPIC -DPIC -o .libs/kernel.o
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT kernel.lo -MD -MP -MF .deps/kernel.Tpo -c kernel.c -o kernel.o >/dev/null 2>&1
mv -f .deps/kernel.Tpo .deps/kernel.Plo
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT scanner.lo -MD -MP -MF .deps/scanner.Tpo -c -o scanner.lo scanner.c
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT scanner.lo -MD -MP -MF .deps/scanner.Tpo -c scanner.c  -fPIC -DPIC -o .libs/scanner.o
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT scanner.lo -MD -MP -MF .deps/scanner.Tpo -c scanner.c -o scanner.o >/dev/null 2>&1
mv -f .deps/scanner.Tpo .deps/scanner.Plo
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT private.lo -MD -MP -MF .deps/private.Tpo -c -o private.lo private.c
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT private.lo -MD -MP -MF .deps/private.Tpo -c private.c  -fPIC -DPIC -o .libs/private.o
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT private.lo -MD -MP -MF .deps/private.Tpo -c private.c -o private.o >/dev/null 2>&1
mv -f .deps/private.Tpo .deps/private.Plo
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT features.lo -MD -MP -MF .deps/features.Tpo -c -o features.lo features.c
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT features.lo -MD -MP -MF .deps/features.Tpo -c features.c  -fPIC -DPIC -o .libs/features.o
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT features.lo -MD -MP -MF .deps/features.Tpo -c features.c -o features.o >/dev/null 2>&1
mv -f .deps/features.Tpo .deps/features.Plo
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT kernel_interface.lo -MD -MP -MF .deps/kernel_interface.Tpo -c -o kernel_interface.lo kernel_interface.c
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT kernel_interface.lo -MD -MP -MF .deps/kernel_interface.Tpo -c kernel_interface.c  -fPIC -DPIC -o .libs/kernel_interface.o
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT kernel_interface.lo -MD -MP -MF .deps/kernel_interface.Tpo -c kernel_interface.c -o kernel_interface.o >/dev/null 2>&1
mv -f .deps/kernel_interface.Tpo .deps/kernel_interface.Plo
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT policy_cache.lo -MD -MP -MF .deps/policy_cache.Tpo -c -o policy_cache.lo policy_cache.c
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT policy_cache.lo -MD -MP -MF .deps/policy_cache.Tpo -c policy_cache.c  -fPIC -DPIC -o .libs/policy_cache.o
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT policy_cache.lo -MD -MP -MF .deps/policy_cache.Tpo -c policy_cache.c -o policy_cache.o >/dev/null 2>&1
mv -f .deps/policy_cache.Tpo .deps/policy_cache.Plo
/bin/sh ../libtool  --tag=CC   --mode=compile gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT PMurHash.lo -MD -MP -MF .deps/PMurHash.Tpo -c -o PMurHash.lo PMurHash.c
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT PMurHash.lo -MD -MP -MF .deps/PMurHash.Tpo -c PMurHash.c  -fPIC -DPIC -o .libs/PMurHash.o
libtool: compile:  gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -D_GNU_SOURCE -I../include/ -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT PMurHash.lo -MD -MP -MF .deps/PMurHash.Tpo -c PMurHash.c -o PMurHash.o >/dev/null 2>&1
mv -f .deps/PMurHash.Tpo .deps/PMurHash.Plo
/bin/sh ../libtool  --tag=CC   --mode=link gcc -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -version-info 13:2:12 -XCClinker -dynamic -pthread -Wl,--version-script=../src/libapparmor.map  -o libapparmor.la -rpath /usr/local/lib grammar.lo libaalogparse.lo kernel.lo scanner.lo private.lo features.lo kernel_interface.lo policy_cache.lo PMurHash.lo  
libtool: link: gcc -shared  -fPIC -DPIC  .libs/grammar.o .libs/libaalogparse.o .libs/kernel.o .libs/scanner.o .libs/private.o .libs/features.o .libs/kernel_interface.o .libs/policy_cache.o .libs/PMurHash.o    -flto-partition=none -g -O2 -dynamic -Wl,--version-script=../src/libapparmor.map   -pthread -Wl,-soname -Wl,libapparmor.so.1 -o .libs/libapparmor.so.1.12.2
libtool: link: (cd ".libs" && rm -f "libapparmor.so.1" && ln -s "libapparmor.so.1.12.2" "libapparmor.so.1")
libtool: link: (cd ".libs" && rm -f "libapparmor.so" && ln -s "libapparmor.so.1.12.2" "libapparmor.so")
libtool: link: ar cr .libs/libapparmor.a  grammar.o libaalogparse.o kernel.o scanner.o private.o features.o kernel_interface.o policy_cache.o PMurHash.o
libtool: link: ranlib .libs/libapparmor.a
libtool: link: ( cd ".libs" && rm -f "libapparmor.la" && ln -s "../libapparmor.la" "libapparmor.la" )
cd ".." && \
/bin/sh ./config.status --file="src/libapparmor.pc"
config.status: creating src/libapparmor.pc
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
Making all in include
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
Making all in sys
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include/sys”
make[2]: 对“all”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include/sys”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
make[2]: 对“all-am”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
Making all in swig
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
Making all in perl
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
/usr/bin/swig -perl -I./../../include -module LibAppArmor -o libapparmor_wrap.c ./../SWIG/libapparmor.i
./../../include/aalogparse.h:163: Warning 301: class keyword used, but not in C++ mode.
/usr/bin/perl Makefile.PL PREFIX=/usr/local MAKEFILE=Makefile.perl
Warning: -L../../src/.libs/ changed to -L/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl/../../src/.libs/
Generating a Unix-style Makefile.perl
Writing Makefile.perl for LibAppArmor
Writing MYMETA.yml and MYMETA.json
sed -ie 's/LD_RUN_PATH="\x24(LD_RUN_PATH)"//g' Makefile.perl
sed -ie 's/^LD_RUN_PATH.*//g' Makefile.perl
if test ! -f libapparmor_wrap.c; then cp ./libapparmor_wrap.c . ; fi
make -fMakefile.perl
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
cp LibAppArmor.pm blib/lib/LibAppArmor.pm
Running Mkbootstrap for LibAppArmor ()
chmod 644 "LibAppArmor.bs"
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- LibAppArmor.bs blib/arch/auto/LibAppArmor/LibAppArmor.bs 644
cc -c  -I../../include -g -O2 -D_REENTRANT -D_GNU_SOURCE -fwrapv -fno-strict-aliasing -pipe -fstack-protector-strong -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -O2   -DVERSION=\"3.1.0\" -DXS_VERSION=\"3.1.0\" -fPIC "-I/usr/lib/perl5/5.36/core_perl/CORE"   libapparmor_wrap.c
rm -f blib/arch/auto/LibAppArmor/LibAppArmor.so
cc  -shared -O2 -L/usr/local/lib -fstack-protector-strong  libapparmor_wrap.o  -o blib/arch/auto/LibAppArmor/LibAppArmor.so  \-L/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl/../../src/.libs -lapparmor   \chmod 755 blib/arch/auto/LibAppArmor/LibAppArmor.so
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
if test ../.. != ../.. ; then rm -f libapparmor_wrap.c ; fi
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
Making all in python
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
Making all in test
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[3]: 对“all”无需做任何事。make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
/usr/bin/swig -python -I./../../include -module LibAppArmor -o libapparmor_wrap.c ./../SWIG/libapparmor.i
./../../include/aalogparse.h:163: Warning 301: class keyword used, but not in C++ mode.
./../../include/aalogparse.h:163: Warning 314: 'class' is a python keyword, renaming to '_class'
if test ! -f libapparmor_wrap.c; then cp ./libapparmor_wrap.c . ; fi
CC="gcc" CFLAGS="-I/usr/include/python3.10 -I/usr/include/python3.10 -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough" LDSHARED="gcc -shared" LDFLAGS="-L/usr/lib  -lcrypt -ldl  -lm -lm  " /usr/bin/python3 setup.py build
running build
running build_py
creating build
creating build/lib.linux-x86_64-cpython-310
creating build/lib.linux-x86_64-cpython-310/LibAppArmor
copying ./LibAppArmor.py -> build/lib.linux-x86_64-cpython-310/LibAppArmor
copying ./__init__.py -> build/lib.linux-x86_64-cpython-310/LibAppArmor
running build_ext
building '_LibAppArmor' extension
creating build/temp.linux-x86_64-cpython-310
gcc -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -I/usr/include/python3.10 -I/usr/include/python3.10 -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -I../../include -I/usr/include/python3.10 -c libapparmor_wrap.c -o build/temp.linux-x86_64-cpython-310/libapparmor_wrap.o
libapparmor_wrap.c: 在函数‘_wrap_aa_change_hat_vargs__varargs__’中:
libapparmor_wrap.c:6069:117: 警告:unused parameter ‘varargs’ [-Wunused-parameter]6069 | SWIGINTERN PyObject *_wrap_aa_change_hat_vargs__varargs__(PyObject *SWIGUNUSEDPARM(self), PyObject *args, PyObject *varargs) {|                                                                                                           ~~~~~~~~~~^~~~~~~
libapparmor_wrap.c: 在函数‘_wrap_aa_getpeercon_raw’中:
libapparmor_wrap.c:6444:47: 警告:传递‘aa_getpeercon_raw’的第 3 个参数给指针时,目标与指针符号不一致 [-Wpointer-sign]6444 |     result = (int)aa_getpeercon_raw(arg1,arg2,arg3,arg4);|                                               ^~~~|                                               ||                                               int *
In file included from libapparmor_wrap.c:2709:
../../include/sys/apparmor.h:98:60: 附注:需要类型‘socklen_t *’ {或称 ‘unsigned int *’},但实参的类型为‘int *’98 | extern int aa_getpeercon_raw(int fd, char *buf, socklen_t *len, char **mode);|                                                 ~~~~~~~~~~~^~~
gcc -shared -L/usr/lib -lcrypt -ldl -lm -lm -I/usr/include/python3.10 -I/usr/include/python3.10 -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough build/temp.linux-x86_64-cpython-310/libapparmor_wrap.o -L/usr/lib -o build/lib.linux-x86_64-cpython-310/LibAppArmor/_LibAppArmor.cpython-310-x86_64-linux-gnu.so -L../../src/.libs -lapparmor
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
Making all in ruby
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/ruby”
make[2]: 对“all”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/ruby”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
make[2]: 对“all-am”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
Making all in testsuite
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
Making all in lib
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/lib”
make[2]: 对“all”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/lib”
Making all in config
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/config”
make[2]: 对“all”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/config”
Making all in libaalogparse.test
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/libaalogparse.test”
make[2]: 对“all”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/libaalogparse.test”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I. -I. -I../include  -DLOCALEDIR=\"/usr/local/share/locale\"  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -g -O2 -MT test_multi_multi-test_multi.o -MD -MP -MF .deps/test_multi_multi-test_multi.Tpo -c -o test_multi_multi-test_multi.o `test -f 'test_multi.c' || echo './'`test_multi.c
mv -f .deps/test_multi_multi-test_multi.Tpo .deps/test_multi_multi-test_multi.Po
/bin/sh ../libtool  --tag=CC   --mode=link gcc -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -g -O2   -o test_multi.multi test_multi_multi-test_multi.o -L../src/.libs -lapparmor 
libtool: link: gcc -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -g -O2 -o .libs/test_multi.multi test_multi_multi-test_multi.o  -L../src/.libs /home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src/.libs/libapparmor.so -pthread
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor”
make[1]: 对“all-am”无需做任何事。make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor”

(3)检查

运行make check命令进行检查,实际命令及结果如下:

$ make check
Making check in doc
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/doc”
make[1]: 对“check”无需做任何事。make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/doc”
Making check in src
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make  check-am
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make  tst_aalogmisc tst_features tst_kernel
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT tst_aalogmisc.o -MD -MP -MF .deps/tst_aalogmisc.Tpo -c -o tst_aalogmisc.o tst_aalogmisc.c
mv -f .deps/tst_aalogmisc.Tpo .deps/tst_aalogmisc.Po
/bin/sh ../libtool  --tag=CC   --mode=link gcc -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2   -o tst_aalogmisc tst_aalogmisc.o .libs/libapparmor.a 
libtool: link: gcc -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -o tst_aalogmisc tst_aalogmisc.o  .libs/libapparmor.a
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT tst_features.o -MD -MP -MF .deps/tst_features.Tpo -c -o tst_features.o tst_features.c
tst_features.c: 在函数‘main’中:
tst_features.c:123:21: 警告:‘c’ may be used uninitialized [-Wmaybe-uninitialized]123 |                 if (do_test_walk_one(str, component, is_top_level,      \|                     ^~~~~~~~~~~~~~~~
tst_features.c:97:12: 附注:by argument 2 of type ‘const struct component *’ to ‘do_test_walk_one’ declared here97 | static int do_test_walk_one(const char **str, const struct component *component,|            ^~~~~~~~~~~~~~~~
tst_features.c:138:26: 附注:‘c’在此声明  138 |         struct component c;|                          ^
tst_features.c:123:21: 警告:‘c’ may be used uninitialized [-Wmaybe-uninitialized]123 |                 if (do_test_walk_one(str, component, is_top_level,      \|                     ^~~~~~~~~~~~~~~~
tst_features.c:97:12: 附注:by argument 2 of type ‘const struct component *’ to ‘do_test_walk_one’ declared here97 | static int do_test_walk_one(const char **str, const struct component *component,|            ^~~~~~~~~~~~~~~~
tst_features.c:138:26: 附注:‘c’在此声明  138 |         struct component c;|                          ^
mv -f .deps/tst_features.Tpo .deps/tst_features.Po
/bin/sh ../libtool  --tag=CC   --mode=link gcc -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2   -o tst_features tst_features.o .libs/libapparmor.a 
libtool: link: gcc -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -o tst_features tst_features.o  .libs/libapparmor.a
gcc -DPACKAGE_NAME=\"\" -DPACKAGE_TARNAME=\"\" -DPACKAGE_VERSION=\"\" -DPACKAGE_STRING=\"\" -DPACKAGE_BUGREPORT=\"\" -DPACKAGE_URL=\"\" -DPACKAGE=\"libapparmor1\" -DVERSION=\"3.1.0\" -DYYTEXT_POINTER=1 -DHAVE_STDIO_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_STRINGS_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_UNISTD_H=1 -DSTDC_HEADERS=1 -DHAVE_UNISTD_H=1 -DHAVE_STDINT_H=1 -DHAVE_SYSLOG_H=1 -DHAVE_ASPRINTF=1 -DHAVE_SECURE_GETENV=1 -DHAVE_REALLOCARRAY=1 -DHAVE_DLFCN_H=1 -DLT_OBJDIR=\".libs/\" -I.  -D_GNU_SOURCE -I../include/  -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -MT tst_kernel.o -MD -MP -MF .deps/tst_kernel.Tpo -c -o tst_kernel.o tst_kernel.c
tst_kernel.c: 在函数‘test_splitcon’中:
tst_kernel.c:133:37: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]133 |         TEST_SPLITCON("unconfined", -1, true, "unconfined", NULL,|                                     ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:135:37: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]135 |         TEST_SPLITCON("unconfined", -1, false, "unconfined", NULL,|                                     ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:137:39: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]137 |         TEST_SPLITCON("unconfined\n", -1, true, "unconfined", NULL,|                                       ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:139:39: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]139 |         TEST_SPLITCON("unconfined\n", -1, false, NULL, NULL,|                                       ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:142:39: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]142 |         TEST_SPLITCON("label (mode)", -1, true, "label", "mode",|                                       ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:144:39: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]144 |         TEST_SPLITCON("label (mode)", -1, false, "label", "mode",|                                       ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:146:41: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]146 |         TEST_SPLITCON("label (mode)\n", -1, true, "label", "mode",|                                         ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:148:41: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]148 |         TEST_SPLITCON("label (mode)\n", -1, false, NULL, NULL,|                                         ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:151:43: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]151 |         TEST_SPLITCON("/a/b/c (enforce)", -1, true, "/a/b/c", "enforce",|                                           ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:153:43: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]153 |         TEST_SPLITCON("/a/b/c (enforce)", -1, false, "/a/b/c", "enforce",|                                           ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:155:45: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]155 |         TEST_SPLITCON("/a/b/c (enforce)\n", -1, true, "/a/b/c", "enforce",|                                             ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
tst_kernel.c:157:45: 警告:operand of ‘?:’ changes signedness from ‘int’ to ‘size_t’ {或称 ‘long unsigned int’} due to unsignedness of other operand [-Wsign-compare]157 |         TEST_SPLITCON("/a/b/c (enforce)\n", -1, false, NULL, NULL,|                                             ^~
tst_kernel.c:86:54: 附注:in definition of macro ‘TEST_SPLITCON’86 |                 size_t sz = size < 0 ? strlen(con) : size;              \|                                                      ^~~~
mv -f .deps/tst_kernel.Tpo .deps/tst_kernel.Po
/bin/sh ../libtool  --tag=CC   --mode=link gcc -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -pthread  -o tst_kernel tst_kernel.o .libs/libapparmor.a 
libtool: link: gcc -Wall -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough -fPIC -flto-partition=none -g -O2 -o tst_kernel tst_kernel.o  .libs/libapparmor.a -pthread
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make  check-TESTS check-local
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make[4]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
PASS: tst_aalogmisc
PASS: tst_features
PASS: tst_kernel
============================================================================
Testsuite summary for 
============================================================================
# TOTAL: 3
# PASS:  3
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[4]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
test -f ./.libs/libapparmor.so.1.12.2 || { echo '*** unexpected .so name/number for libapparmor (expected libapparmor.so.1.12.2, the actual filename is shown below) ***' ; ls -l ./.libs/libapparmor.so.*.* ; exit 1; }
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
Making check in include
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
Making check in sys
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include/sys”
make[2]: 对“check”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include/sys”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
make[2]: 对“check-am”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
Making check in swig
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
Making check in perl
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
if test ! -f libapparmor_wrap.c; then cp ./libapparmor_wrap.c . ; fi
make -fMakefile.perl
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- LibAppArmor.bs blib/arch/auto/LibAppArmor/LibAppArmor.bs 644
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
if test ../.. != ../.. ; then rm -f libapparmor_wrap.c ; fi
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
Making check in python
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
Making check in test
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make  check-TESTS
make[4]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[5]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
cd "../../.." && \
/bin/sh ./config.status --file="swig/python/test/test_python.py"
config.status: creating swig/python/test/test_python.py
chmod +x test_python.py
PASS: test_python.py
============================================================================
Testsuite summary for 
============================================================================
# TOTAL: 1
# PASS:  1
# SKIP:  0
# XFAIL: 0
# FAIL:  0
# XPASS: 0
# ERROR: 0
============================================================================
make[5]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[4]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
if test ! -f libapparmor_wrap.c; then cp ./libapparmor_wrap.c . ; fi
CC="gcc" CFLAGS="-I/usr/include/python3.10 -I/usr/include/python3.10 -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough" LDSHARED="gcc -shared" LDFLAGS="-L/usr/lib  -lcrypt -ldl  -lm -lm  " /usr/bin/python3 setup.py build
running build
running build_py
running build_ext
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
Making check in ruby
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/ruby”
make[2]: 对“check”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/ruby”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
make[2]: 对“check-am”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
Making check in testsuite
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
Making check in lib
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/lib”
make[2]: 对“check”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/lib”
Making check in config
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/config”
make[2]: 对“check”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/config”
Making check in libaalogparse.test
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/libaalogparse.test”
make[2]: 对“check”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/libaalogparse.test”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make  check-DEJAGNU check-local
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
Making a new site.exp file ...
srcdir='.'; export srcdir; \
EXPECT=expect; export EXPECT; \
if /bin/sh -c "runtest --version" > /dev/null 2>&1; then \exit_status=0; l='libaalogparse'; for tool in $l; do \if runtest --tool $tool --srcdir $srcdir  ; \then :; else exit_status=1; fi; \done; \
else echo "WARNING: could not find 'runtest'" 1>&2; :;\
fi; \
exit $exit_status
WARNING: Couldn't find the global config file.
WARNING: Couldn't find tool init file
Test run by penghao on Fri Apr 21 15:29:51 2023
Native configuration is x86_64-pc-linux-gnu=== libaalogparse tests ===Schedule of variations:unixRunning target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/config/unix.exp as tool-and-target-specific interface file.
Running /home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/libaalogparse.test/multi_test.exp ...
Running test_multi...... testcase26... testcase_dbus_10... testcase_syslog_mkdir... testcase_mqueue_03... ptrace_garbage_lp1689667_1... syslog_datetime_02... exec02... testcase21... testcase_dbus_06... testcase01... unbalanced_parenthesis... testcase09... old_style_log_03... testcase_dbus_09... testcase_dbus_02... testcase_encoded_profile... syslog_audit_02... old_style_log_05... testcase10... testcase_dbus_05... avc_audit_01... testcase_syslog_link_01... testcase_syslog_changehat_negative_error... testcase_mqueue_07... ptrace_garbage_lp1689667_2... syslog_audit_05... testcase11... testcase15... testcase_network_04... old_style_log_18... old_style_log_09... testcase_syslog_rename_src... testcase08... unconfined-change_hat... testcase_changehat_01... testcase14... testcase_dmesg_changehat_negative_error... testcase_mqueue_06... syslog_datetime_12... old_style_log_17... testcase_mqueue_01... avc_audit_02... testcase_network_02... change_onexec_lp1648143... testcase33... testcase32... avc_audit_03... old_style_log_11... testcase_mount_01... testcase07... old_style_log_15... testcase24... old_style_log_16... avc_audit_invalid_audit_id... testcase_dmesg_mkdir... testcase18... syslog_datetime_08... testcase_dbus_04... syslog_datetime_16... testcase_syslog_status_offset... testcase_dmesg_link_01... testcase_userns_01... testcase_ouid... testcase06... testcase_pivotroot_01... testcase_dbus_03... testcase_network_01... syslog_datetime_14... testcase_mqueue_05... testcase_network_03... testcase_dbus_08... testcase19... syslog_datetime_11... old_style_log_01... syslog_datetime_03... testcase_mqueue_08... old_style_log_10... testcase_dbus_07... syslog_datetime_13... syslog_datetime_15... testcase_changeprofile_01... avc_syslog_03... syslog_other_03... status-filesystem-enabled... 0x1d-uppercase-FSUID-OUID... syslog_other_02... testcase_dmesg_truncate... symlink... syslog_hostname_with_dot... testcase03... testcase_ptrace_01... testcase_dmesg_rename_src... exec01... syslog_datetime_07... syslog_datetime_09... testcase_dbus_01... testcase25... testcase17... testcase_network_05... syslog_datetime_17... syslog_other_01... testcase_dmesg_status_offset... file_chown... complex_profile_name... syslog_datetime_06... old_style_log_04... syslog_datetime_10... file_xm... old_style_log_07... ptrace_no_denied_mask... testcase22... testcase_signal_01... testcase_dmesg_capability... testcase04... file_perm_network_lp1466812... testcase_syslog_capability... testcase31... old_style_log_06... syslog_audit_01... syslog_datetime_04... testcase_syslog_rename_dest... testcase13... old_style_log_12... testcase35... testcase12... syslog_other_04... testcase_mqueue_02... testcase_dmesg_rename_dest... testcase_socklogd_mkdir... syslog_audit_06... syslog_datetime_18... avc_syslog_02... testcase_network_send_receive... syslog_datetime_05... testcase_changeprofile_02... testcase_syslog_truncate... testcase16... testcase_encoded_comm... old_style_log_08... testcase_signal_02... syslog_datetime_01... testcase_stack_crash... testcase_syslog_read... testcase_dbus_11... testcase02... testcase_dmesg_changeprofile_01... file_inherit_network_lp1509030... old_style_log_14... testcase05... file_perm_network_receive_lp1577051... testcase_mqueue_04... old_style_log_02... old_style_log_13... avc_syslog_01... file_perm_network_receive_lp1582374=== libaalogparse Summary ===# of expected passes            155
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor”
make[1]: 对“check-am”无需做任何事。make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor”

(4)安装

运行make install命令进行安装,实际命令及结果如下(注意DESTDIR=的参数):

$ make install DESTDIR=/home/penghao/AppArmor/apparmor_2/output
Making install in doc
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/doc”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/doc”
make[2]: 对“install-exec-am”无需做任何事。 /usr/bin/mkdir -p '/home/penghao/AppArmor/apparmor_2/output/usr/local/share/man/man2'/usr/bin/install -c -m 644 aa_change_hat.2 aa_change_profile.2 aa_stack_profile.2 aa_getcon.2 aa_find_mountpoint.2 aa_query_label.2 '/home/penghao/AppArmor/apparmor_2/output/usr/local/share/man/man2'/usr/bin/mkdir -p '/home/penghao/AppArmor/apparmor_2/output/usr/local/share/man/man3'/usr/bin/install -c -m 644 aa_splitcon.3 aa_features.3 aa_kernel_interface.3 aa_policy_cache.3 '/home/penghao/AppArmor/apparmor_2/output/usr/local/share/man/man3'
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/doc”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/doc”
Making install in src
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make  install-am
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”/usr/bin/mkdir -p '/home/penghao/AppArmor/apparmor_2/output/usr/local/lib'/bin/sh ../libtool   --mode=install /usr/bin/install -c   libapparmor.la '/home/penghao/AppArmor/apparmor_2/output/usr/local/lib'
libtool: install: /usr/bin/install -c .libs/libapparmor.so.1.12.2 /home/penghao/AppArmor/apparmor_2/output/usr/local/lib/libapparmor.so.1.12.2
libtool: install: (cd /home/penghao/AppArmor/apparmor_2/output/usr/local/lib && { ln -s -f libapparmor.so.1.12.2 libapparmor.so.1 || { rm -f libapparmor.so.1 && ln -s libapparmor.so.1.12.2 libapparmor.so.1; }; })
libtool: install: (cd /home/penghao/AppArmor/apparmor_2/output/usr/local/lib && { ln -s -f libapparmor.so.1.12.2 libapparmor.so || { rm -f libapparmor.so && ln -s libapparmor.so.1.12.2 libapparmor.so; }; })
libtool: install: /usr/bin/install -c .libs/libapparmor.lai /home/penghao/AppArmor/apparmor_2/output/usr/local/lib/libapparmor.la
libtool: install: /usr/bin/install -c .libs/libapparmor.a /home/penghao/AppArmor/apparmor_2/output/usr/local/lib/libapparmor.a
libtool: install: chmod 644 /home/penghao/AppArmor/apparmor_2/output/usr/local/lib/libapparmor.a
libtool: install: ranlib /home/penghao/AppArmor/apparmor_2/output/usr/local/lib/libapparmor.a
libtool: warning: remember to run 'libtool --finish /usr/local/lib'/usr/bin/mkdir -p '/home/penghao/AppArmor/apparmor_2/output/usr/local/lib/pkgconfig'/usr/bin/install -c -m 644 libapparmor.pc '/home/penghao/AppArmor/apparmor_2/output/usr/local/lib/pkgconfig'
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/src”
Making install in include
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
Making install in sys
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include/sys”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include/sys”
make[3]: 对“install-exec-am”无需做任何事。 /usr/bin/mkdir -p '/home/penghao/AppArmor/apparmor_2/output/usr/local/include/sys'/usr/bin/install -c -m 644 apparmor.h apparmor_private.h '/home/penghao/AppArmor/apparmor_2/output/usr/local/include/sys'
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include/sys”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include/sys”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
make[3]: 对“install-exec-am”无需做任何事。 /usr/bin/mkdir -p '/home/penghao/AppArmor/apparmor_2/output/usr/local/include/aalogparse'/usr/bin/install -c -m 644 aalogparse.h '/home/penghao/AppArmor/apparmor_2/output/usr/local/include/aalogparse'
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/include”
Making install in swig
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
Making install in perl
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
if test ! -f libapparmor_wrap.c; then cp ./libapparmor_wrap.c . ; fi
make -fMakefile.perl
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- LibAppArmor.bs blib/arch/auto/LibAppArmor/LibAppArmor.bs 644
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
if test ../.. != ../.. ; then rm -f libapparmor_wrap.c ; fi
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
make -fMakefile.perl install_vendor
make[4]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
"/usr/bin/perl" -MExtUtils::Command::MM -e 'cp_nonempty' -- LibAppArmor.bs blib/arch/auto/LibAppArmor/LibAppArmor.bs 644
Files found in blib/arch: installing files in blib/lib into architecture dependent library tree
Installing /home/penghao/AppArmor/apparmor_2/output/usr/local/lib/perl5/5.36/vendor_perl/auto/LibAppArmor/LibAppArmor.so
Installing /home/penghao/AppArmor/apparmor_2/output/usr/local/lib/perl5/5.36/vendor_perl/LibAppArmor.pm
Appending installation info to /home/penghao/AppArmor/apparmor_2/output/usr/local/lib/perl5/5.36/core_perl/perllocal.pod
make[4]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
make[3]: 对“install-data-am”无需做任何事。make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/perl”
Making install in python
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
Making install in test
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[4]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[4]: 对“install-exec-am”无需做任何事。make[4]: 对“install-data-am”无需做任何事。make[4]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python/test”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
if test ! -f libapparmor_wrap.c; then cp ./libapparmor_wrap.c . ; fi
CC="gcc" CFLAGS="-I/usr/include/python3.10 -I/usr/include/python3.10 -Wall -Wsign-compare -Wmissing-field-initializers -Wformat -Wformat-security -Wunused-parameter -Wimplicit-fallthrough" LDSHARED="gcc -shared" LDFLAGS="-L/usr/lib  -lcrypt -ldl  -lm -lm  " /usr/bin/python3 setup.py build
running build
running build_py
running build_ext
make[4]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
/usr/bin/python3 setup.py install --root="//home/penghao/AppArmor/apparmor_2/output" --prefix="/usr/local"
running install
/usr/lib/python3.10/site-packages/setuptools/command/install.py:34: SetuptoolsDeprecationWarning: setup.py install is deprecated. Use build and pip and other standards-based tools.warnings.warn(
running build
running build_py
running build_ext
running install_lib
creating //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10
creating //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10/site-packages
creating //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10/site-packages/LibAppArmor
copying build/lib.linux-x86_64-cpython-310/LibAppArmor/LibAppArmor.py -> //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10/site-packages/LibAppArmor
copying build/lib.linux-x86_64-cpython-310/LibAppArmor/_LibAppArmor.cpython-310-x86_64-linux-gnu.so -> //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10/site-packages/LibAppArmor
copying build/lib.linux-x86_64-cpython-310/LibAppArmor/__init__.py -> //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10/site-packages/LibAppArmor
creating //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10/site-packages/LibAppArmor/__pycache__
copying build/lib.linux-x86_64-cpython-310/LibAppArmor/__pycache__/__init__.cpython-310.pyc -> //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10/site-packages/LibAppArmor/__pycache__
copying build/lib.linux-x86_64-cpython-310/LibAppArmor/__pycache__/LibAppArmor.cpython-310.pyc -> //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10/site-packages/LibAppArmor/__pycache__
running install_egg_info
running egg_info
creating LibAppArmor.egg-info
writing LibAppArmor.egg-info/PKG-INFO
writing dependency_links to LibAppArmor.egg-info/dependency_links.txt
writing top-level names to LibAppArmor.egg-info/top_level.txt
writing manifest file 'LibAppArmor.egg-info/SOURCES.txt'
reading manifest file 'LibAppArmor.egg-info/SOURCES.txt'
writing manifest file 'LibAppArmor.egg-info/SOURCES.txt'
Copying LibAppArmor.egg-info to //home/penghao/AppArmor/apparmor_2/output/usr/local/lib/python3.10/site-packages/LibAppArmor-3.1.0-py3.10.egg-info
running install_scripts
make[4]: 对“install-data-am”无需做任何事。make[4]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/python”
Making install in ruby
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/ruby”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/ruby”
make[3]: 对“install-exec-am”无需做任何事。make[3]: 对“install-data-am”无需做任何事。make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/ruby”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig/ruby”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
make[3]: 对“install-exec-am”无需做任何事。make[3]: 对“install-data-am”无需做任何事。make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/swig”
Making install in testsuite
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
Making install in lib
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/lib”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/lib”
make[3]: 对“install-exec-am”无需做任何事。make[3]: 对“install-data-am”无需做任何事。make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/lib”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/lib”
Making install in config
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/config”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/config”
make[3]: 对“install-exec-am”无需做任何事。make[3]: 对“install-data-am”无需做任何事。make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/config”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/config”
Making install in libaalogparse.test
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/libaalogparse.test”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/libaalogparse.test”
make[3]: 对“install-exec-am”无需做任何事。make[3]: 对“install-data-am”无需做任何事。make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/libaalogparse.test”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite/libaalogparse.test”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[3]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[3]: 对“install-exec-am”无需做任何事。make[3]: 对“install-data-am”无需做任何事。make[3]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor/testsuite”
make[1]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor”
make[2]: 进入目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor”
make[2]: 对“install-exec-am”无需做任何事。make[2]: 对“install-data-am”无需做任何事。make[2]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor”
make[1]: 离开目录“/home/penghao/AppArmor/apparmor_2/apparmor/libraries/libapparmor”

(5)查看生成内容

查看一下通过configure --prefix=/usr/local和make DESTDIR=/home/penghao/AppArmor/apparmor_2/output配置后实际的生成文件及路径: 

penghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/libraries/libapparmor$ ls /home/penghao/AppArmor/apparmor_2/output/
usrpenghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/libraries/libapparmor$ ls /home/penghao/AppArmor/apparmor_2/output/usr/
localpenghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/libraries/libapparmor$ ls /home/penghao/AppArmor/apparmor_2/output/usr/local/
include  lib  sharepenghao@Ding-Perlis-MP260S48:~/AppArmor/apparmor_2/apparmor/libraries/libapparmor$ tree /home/penghao/AppArmor/apparmor_2/output/
/home/penghao/AppArmor/apparmor_2/output/
└── usr└── local├── include│   ├── aalogparse│   │   └── aalogparse.h│   └── sys│       ├── apparmor.h│       └── apparmor_private.h├── lib│   ├── libapparmor.a│   ├── libapparmor.la│   ├── libapparmor.so -> libapparmor.so.1.12.2│   ├── libapparmor.so.1 -> libapparmor.so.1.12.2│   ├── libapparmor.so.1.12.2│   ├── perl5│   │   └── 5.36│   │       ├── core_perl│   │       │   └── perllocal.pod│   │       └── vendor_perl│   │           ├── auto│   │           │   └── LibAppArmor│   │           │       └── LibAppArmor.so│   │           └── LibAppArmor.pm│   ├── pkgconfig│   │   └── libapparmor.pc│   └── python3.10│       └── site-packages│           ├── LibAppArmor│           │   ├── __init__.py│           │   ├── _LibAppArmor.cpython-310-x86_64-linux-gnu.so│           │   ├── LibAppArmor.py│           │   └── __pycache__│           │       ├── __init__.cpython-310.pyc│           │       └── LibAppArmor.cpython-310.pyc│           └── LibAppArmor-3.1.0-py3.10.egg-info│               ├── dependency_links.txt│               ├── PKG-INFO│               ├── SOURCES.txt│               └── top_level.txt└── share└── man├── man2│   ├── aa_change_hat.2│   ├── aa_change_profile.2│   ├── aa_find_mountpoint.2│   ├── aa_getcon.2│   ├── aa_query_label.2│   └── aa_stack_profile.2└── man3├── aa_features.3├── aa_kernel_interface.3├── aa_policy_cache.3└── aa_splitcon.322 directories, 31 files

在这里科普一下--prefix=选项和DESTDIR=的作用。参见以下博客:

make的DESTDIR和PREFIX

  • ./configure --prefix=***

决定了程序包在安装时的运行位置以及运行时将在何处查找其关联文件。如果您只是编译要在单个主机上使用的东西,那么应该使用它。

  • make install DESTDIR=***

用于安装到一个临时目录,而不是从中运行该软件包。例如,在构建deb软件包时使用它。构建软件包的人实际上并没有将所有内容安装到自己系统上的最终位置。他可能已经安装了其他版本,不想打扰它,甚至可能不是root用户。所以他用

./configure --prefix=/usr

因此该程序有望在/usr运行时安装在其中,然后

make install DESTDIR=debian/tmp

实际创建目录结构。

相关文章:

libapparmor非默认目录构建和安装

在AppArmor零知识学习五、源码构建&#xff08;2&#xff09;中&#xff0c;详细介绍了libapparmor的构建步骤&#xff0c;但那完全使用的是官网给出的默认参数。如果需要将目标文件生成到指定目录而非默认的/usr&#xff0c;则需要进行一些修改&#xff0c;本文就来详述如何进…...

2023-04-14 算法面试中常见的查找表问题

2023-04-14 算法面试中常见的查找表问题 1 Set的使用 LeetCode349号问题&#xff1a;两个数组的交集 给定两个数组&#xff0c;编写一个函数来计算它们的交集。示例 1:输入: nums1 [1,2,2,1], nums2 [2,2] 输出: [2] 示例 2:输入: nums1 [4,9,5], nums2 [9,4,9,8,4] 输出:…...

从TOP25榜单,看半导体之变

据SIA报告显示&#xff0c;2022年全球半导体销售额创历史新高达到5740亿美元。尽管2022年下半年&#xff0c;半导体市场出现了周期性的低迷&#xff0c;但其全年的销售额相较2021年增长了3.3%。 近日&#xff0c;市调机构Gartner发布了全球以及中国大陆TOP25名半导体厂商的排名…...

[异常]java常见异常

Java.io.NullPointerException null 空的&#xff0c;不存在的NullPointer 空指针 空指针异常&#xff0c;该异常出现在我们操作某个对象的属性或方法时&#xff0c;如果该对象是null时引发。 String str null; str.length();//空指针异常 上述代码中引用类型变量str的值为…...

gpt4all保姆级使用教程! 不用联网! 本地就能跑的GPT

原文&#xff1a;gpt4all保姆级使用教程! 不用联网! 本地就能跑的GPT 什么是gpt4all gpt4all是在大量干净数据上训练的一个开源聊天机器人的生态系统。它不用科学上网&#xff01;甚至可以不联网&#xff01;本地就能用&#xff0c;像这样↓&#xff1a; 如何使用&#xff…...

AcWing语法基础班 1.1 变量、输入输出、表达式和顺序语句

预备知识 首先先来了解一下最简单的C代码。 本文的所有代码操作均在AcWing的AC Editor中 #include <iostream>using namespace std;int main(){cout << "Hello World" << endl;return 0; }然后使用编译&#xff08;点击调试&#xff0c;再点击运…...

DC:5靶机通关详解

信息收集 漏洞发现 扫个目录 发现存在footer.php 查看,发现好像没什么用 参考他人wp得知thankyou.php会包含footer.php 可以通过传参来包含别的文件 但是我们不知道参数,这里用fuzz来跑参数 这里用wfuzz的时候报错了 解决方法如下 卸载 sudo apt --purge remove python3-pycu…...

【测试开发篇9】Junit框架

目录 一、认识Junit框架 Junit和Selenium的关系是什么 导入Junit框架common-io包 二、Junit框架的使用 2.1Junit有哪些常用注解 2.1.1Test注解 2.1.2BeforeEach 2.1.3BeforeAll 2.1.4AfterAll 2.1.5AfterEach 2.2Junit的断言 Assertions.assertEquals(期待值&#…...

《Spring MVC》 第五章 实现RESTful

前言 教授大家如何实现RESTful 1、什么是RESTful resource Representational State Transfer 的缩写&#xff0c;就是“表现层资源表述状态转移” 1.1、Resource&#xff08;资源&#xff09; web应用的文件&#xff0c;uri定位 1.2、Representation&#xff08;资源的描…...

Last Week in Milvus

What’s New Core Updates #23353 在 2.3 版本中&#xff0c; milvus 和 knowhere 引擎会移除了 Annoy 索引。Annoy 索引在性能和召回率方面均不如 IVF、HNSW 等索引&#xff0c;维护成本比较高所以经过讨论决定在 2.3 中移出 Annoy 索引的支持&#xff0c;有使用的用户要注意…...

Cursor IDE一个GPT4人工智能自动程序编辑器

让我们来了解一下Cursor IDE是什么。Cursor IDE是一个新型的编程工具&#xff0c;可以通过它生成、编辑以及与人工智能进行交互分析代码。官方网站上的三个单词“Build Software. Fast.”&#xff08;快速构建软件&#xff09;以及“Write, edit, and chat about your code wit…...

PPO算法-理论篇

1. Policy Gradient 【李宏毅深度强化学习笔记】1、策略梯度方法&#xff08;Policy Gradient&#xff09; 李宏毅深度强化学习-B站 2. PPO PPO 算法 PPO算法更新过程如下&#xff1a; 初始化policy参数 θ 0 \theta^0 θ0在每一步迭代中&#xff1a; 使用 θ k \theta^k …...

【现货】AP6317 同步3A锂电充电芯片 带短温度保护

AP6317是一款面向5V交流适配器的3A锂 离子电池充电器。它是采用800KHz固定频率的同 步降压型转换器&#xff0c;因此具有高达92%以上的充电效 率&#xff0c;自身发热量极小。 包括完整的充电终止电路、自动再充 电和一个精确度达1%的4.2V预设充电电压&#xff0c;内 部集成了防…...

MyBatis详解(2)

8、自定义映射resultMap 8.1、resultMap处理字段和属性的映射关系 若字段名和实体类中的属性名不一致&#xff0c;则可以通过resultMap设置自定义映射 <!--resultMap&#xff1a;设置自定义映射属性&#xff1a;id&#xff1a;表示自定义映射的唯一标识type&#xff1a;查询…...

2023-04-14 使用纯JS实现一个2048小游戏

文章目录 一.实现思路1.2048的逻辑2.移动操作的过程中会有三种情况 二.代码部分:分为初始化部分和移动部分1.初始化部分1.1.生成第一个方块:1.2.生成第二个方块: 2.移动过程部分: 三.实现代码1.HTML部分2.CSS部分3.JS部分3.1.game对象的属性3.2.game对象的start方法3.3.game对象…...

C++入门(3)

C入门 1.auto关键字&#xff08;C11&#xff09;1.1. 类型别名的思考1.2. auto简介1.3. auto使用情景1.4. auto的使用细则1.5. auto不能推导的场景 1.auto关键字&#xff08;C11&#xff09; 1.1. 类型别名的思考 随着程序越来越复杂&#xff0c;程序中用到的类型也越来越复杂…...

【亲测有效】更新了WIN11之后 右键无 新建WORD,PPT,EXCEL 选项 问题 解决方案

原本正常的正版系统&#xff0c;在昨天4月自动更新安装之后&#xff0c;发现右键找 不到新建文档了&#xff0c;word,ppt,excel都不见了。 看了网上大神的方法 Win11安装了Office右键没有新建Excel选项怎么办&#xff1f; - 知乎 可以解决一部分 官方解决方案&#xff0c;亲…...

2023年4月北京/西安/郑州/深圳CDGA/CDGP数据治理认证考试报名

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…...

Win10桌面我的电脑怎么调出来?最简单方法教学

Win10桌面我的电脑怎么调出来&#xff1f;有用户发现自己的电脑桌面没有我的电脑这个程序图标&#xff0c;每次要访问磁盘的时候&#xff0c;开启都非常的麻烦。那么怎么将这个图标设置到桌面显示呢&#xff1f;接下来我们一起来看看以下的解决方法吧。 方法一&#xff1a; 在开…...

开启单细胞及空间组学行业发展黄金时代!首届国际单细胞及空间组学大会在穗闭幕

2023年4月16日&#xff0c;首届TICSSO国际单细胞及空间组学大会圆满闭幕&#xff0c;本次大会吸引了2000余位来自产、学、研、资、医、政、媒等业界人士齐聚羊城&#xff0c;注册总人数5398人&#xff0c;网络播放总量达548245人次&#xff0c;网络观看覆盖美国、德国、日本、澳…...

[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解

突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 ​安全措施依赖问题​ GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...

多模态2025:技术路线“神仙打架”,视频生成冲上云霄

文&#xff5c;魏琳华 编&#xff5c;王一粟 一场大会&#xff0c;聚集了中国多模态大模型的“半壁江山”。 智源大会2025为期两天的论坛中&#xff0c;汇集了学界、创业公司和大厂等三方的热门选手&#xff0c;关于多模态的集中讨论达到了前所未有的热度。其中&#xff0c;…...

stm32G473的flash模式是单bank还是双bank?

今天突然有人stm32G473的flash模式是单bank还是双bank&#xff1f;由于时间太久&#xff0c;我真忘记了。搜搜发现&#xff0c;还真有人和我一样。见下面的链接&#xff1a;https://shequ.stmicroelectronics.cn/forum.php?modviewthread&tid644563 根据STM32G4系列参考手…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

苍穹外卖--缓存菜品

1.问题说明 用户端小程序展示的菜品数据都是通过查询数据库获得&#xff0c;如果用户端访问量比较大&#xff0c;数据库访问压力随之增大 2.实现思路 通过Redis来缓存菜品数据&#xff0c;减少数据库查询操作。 缓存逻辑分析&#xff1a; ①每个分类下的菜品保持一份缓存数据…...

BCS 2025|百度副总裁陈洋:智能体在安全领域的应用实践

6月5日&#xff0c;2025全球数字经济大会数字安全主论坛暨北京网络安全大会在国家会议中心隆重开幕。百度副总裁陈洋受邀出席&#xff0c;并作《智能体在安全领域的应用实践》主题演讲&#xff0c;分享了在智能体在安全领域的突破性实践。他指出&#xff0c;百度通过将安全能力…...

Selenium常用函数介绍

目录 一&#xff0c;元素定位 1.1 cssSeector 1.2 xpath 二&#xff0c;操作测试对象 三&#xff0c;窗口 3.1 案例 3.2 窗口切换 3.3 窗口大小 3.4 屏幕截图 3.5 关闭窗口 四&#xff0c;弹窗 五&#xff0c;等待 六&#xff0c;导航 七&#xff0c;文件上传 …...

深入浅出Diffusion模型:从原理到实践的全方位教程

I. 引言&#xff1a;生成式AI的黎明 – Diffusion模型是什么&#xff1f; 近年来&#xff0c;生成式人工智能&#xff08;Generative AI&#xff09;领域取得了爆炸性的进展&#xff0c;模型能够根据简单的文本提示创作出逼真的图像、连贯的文本&#xff0c;乃至更多令人惊叹的…...

VisualXML全新升级 | 新增数据库编辑功能

VisualXML是一个功能强大的网络总线设计工具&#xff0c;专注于简化汽车电子系统中复杂的网络数据设计操作。它支持多种主流总线网络格式的数据编辑&#xff08;如DBC、LDF、ARXML、HEX等&#xff09;&#xff0c;并能够基于Excel表格的方式生成和转换多种数据库文件。由此&…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...