当前位置: 首页 > 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;网络观看覆盖美国、德国、日本、澳…...

YOLOv8 更换主干网络之 GhostNetV2

《GhostNetV2:Enhance Cheap Operation with Long-Range Attention》 轻量级卷积神经网络(CNN)是专门为在移动设备上具有更快推理速度的应用而设计的。卷积操作只能捕捉窗口区域内的局部信息,这防止了性能的进一步提高。将自注意力引入卷积可以很好地捕捉全局信息,但这将大…...

高级服务框架(黑马)

一、修改order-service服务 修改OrderService&#xff0c;让其监听Nacos中的sentinel规则配置。 具体步骤如下&#xff1a; 1.引入依赖 在order-service中引入sentinel监听nacos的依赖&#xff1a; <dependency><groupId>com.alibaba.csp</groupId><…...

Go语言面试题--基础语法(29)

文章目录 1.下面的代码有什么问题&#xff1f;2.下面代码最后一行输出什么&#xff1f;请说明原因3.下面代码有什么问题&#xff1f;4.下面的代码输出什么&#xff1f; 1.下面的代码有什么问题&#xff1f; func main() {data : []int{1,2,3}i : 0ifmt.Println(data[i]) }参考…...

毕业生招聘信息的发布与管理系统(论文+设计)

前 言 当今&#xff0c;人类社会已经进入信息全球化和全球信息化、网络化的高速发展阶段。丰富的网络信息已经成为人们工作、生活、学习中不可缺少的一部分。人们正在逐步适应和习惯于网上贸易、网上购物、网上支付、网上服务和网上娱乐等活动&#xff0c;人类的许多社会活动…...

mysql安全加固配置文档(完结)

4. MySQL 权限安全配置 4.1. 确保只有管理员账号有所有数据库的访问权限 建议理由 除了管理员账号&#xff0c;其他用户没必要有所有数据库的访问权限。过高的权限会导致安全问题。检查方法 SELECT user, host FROM MySQL.user WHERE (Select_priv Y) OR (Insert_priv Y) …...

CAPL函数在实现AES加密算法时遇到的各种问题(c++中符号的含义,AES算法中padding的问题等)

本来打算把AES算法的代码移植到CAPL中的,文章:https://blog.csdn.net/qq_28205153/article/details/55798628?spm=1001.2014.3001.5506里有非常详细的代码。但是一来太麻烦,二来没必要,因为CAPL提供了Security安全相关的函数: 这里面就提供了AES加密算法的接口函数,使用…...

二叉排序树(二叉查找树)基本操作_20230417

二叉排序树&#xff08;二叉查找树&#xff09;基本操作_20230417 前言 二叉排序树首先是一颗二叉树&#xff0c;它不同于常规二叉树的地方在于&#xff0c;如果左子树不为空&#xff0c;那么左子树上所有结点的值都不大于根节点的值&#xff0c;如果右子树不为空&#xff0c…...

实现服务器版本的表白墙

目录 初始前端代码 网页初始效果 一、确定接口 二、编写代码 2.1 创建项目七步走 1、创建Maven项目 2、引入依赖 3、构建目录 4、编写代码 5、打包、部署 ​编辑 7、验证代码 三、具体的代码逻辑 3.1 服务器——两个服务接口 3.2 前端页面的代码 3.2.1 前端存档…...

TensorFlow 2 和 Keras 高级深度学习:6~10

原文&#xff1a;Advanced Deep Learning with TensorFlow 2 and Keras 协议&#xff1a;CC BY-NC-SA 4.0 译者&#xff1a;飞龙 本文来自【ApacheCN 深度学习 译文集】&#xff0c;采用译后编辑&#xff08;MTPE&#xff09;流程来尽可能提升效率。 不要担心自己的形象&#x…...

unity,制作一个环状滑动条

介绍 unity&#xff0c;制作一个环状滑动条 方法 1.导入png图片素材2.新建一个滑动条&#xff0c;两者图片都设置为图片3.调节slider的参数4.调节backgroud的参数5.fill area、fill的参数同上。 得到两个叠加的圆环。6.设置fill的背景颜色为红色7.设置fill填充方式&#xff0…...