search cancel

Endpoint Protection Auto-Protect kernel modules fail to compile on RHEL 7.3

book

Article ID: 163982

calendar_today

Updated On:

Products

Endpoint Protection

Issue/Introduction

When attempting to install Symantec Endpoint Protection (SEP) on Red Hat Enteprrise Linux (RHEL) 7.3, which was released with kernel 3.10.0-514 and since updated with several 3.10.0-514.x.y iterations, the Auto-Compile process for the Auto-Protect kernel modules fails with an error.  Attempting to manually compile the kernel modules results in the same error.  While the error message may be similar to the one shown below, it is likely different when using 12.1 RU6 MP7 or higher.

kbuild log:

Mon Nov 14 13:59:00 PST 2016: starting to build kernel modules of SEP for Linux
Kernel release not specified. Build kernel modules for current kernel version 3.10.0-514.el7.x86_64
Kernel source directory not specified. Use default /lib/modules/3.10.0-514.el7.x86_64/build
make -C /lib/modules/3.10.0-514.el7.x86_64/build M=/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev MODVERDIR=/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/.tmp_versions-custom-3.10.0-514.el7-x86_64 modules
make[1]: Entering directory `/usr/src/kernels/3.10.0-514.el7.x86_64'
  CC [M]  /root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.o
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c: In function ‘sym_filename_str’:
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c:191:53: warning: return discards ‘const’ qualifier from pointer target type [enabled by default]
 static char* sym_filename_str(sym_filename_t* fn) { return fn==NULL? NULL: fn->name; }
                                                     ^
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c: In function ‘symev_read_proc_symev’:
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c:696:9: warning: format ‘%d’ expects argument of type ‘int’, but argument 9 has type ‘long unsigned int’ [-Wformat=]
         ctrsnap.namerr, ctrsnap.nomem, ctrsnap.r_denied);
         ^
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c: In function ‘symev_getfinfo’:
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c:2914:33: error: incompatible types when assigning to type ‘unsigned int’ from type ‘atomic_t’
         evp->file_mmap_writable = SYM_I_MMAP_WRITABLE(dentry->d_inode->i_data.i_mmap_writable);
                                 ^
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c: In function ‘symev_fgetfinfo’:
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c:2976:33: error: incompatible types when assigning to type ‘unsigned int’ from type ‘atomic_t’
         evp->file_mmap_writable = SYM_I_MMAP_WRITABLE(dentry->d_inode->i_data.i_mmap_writable);
                                 ^
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c: In function ‘symev_fpgetfinfo’:
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c:3030:33: error: incompatible types when assigning to type ‘unsigned int’ from type ‘atomic_t’
         evp->file_mmap_writable = SYM_I_MMAP_WRITABLE(dentry->d_inode->i_data.i_mmap_writable);
                                 ^
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c: In function ‘symev_dmgetfinfo’:
/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.c:3079:33: error: incompatible types when assigning to type ‘unsigned int’ from type ‘atomic_t’
         evp->file_mmap_writable = SYM_I_MMAP_WRITABLE(dentry->d_inode->i_data.i_mmap_writable);
                                 ^
make[2]: *** [/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev/symev.o] Error 1
make[1]: *** [_module_/root/1904/src/ap-kernelmodule-14.0.1904-0000/symev] Error 2
make[1]: Leaving directory `/usr/src/kernels/3.10.0-514.el7.x86_64'
make: *** [custom] Error 2
Mon Nov 14 13:59:02 PST 2016: Build failed

Environment

SEP 12.1 RU5 or higher
SEP 14

Resolution

SEP 12.1 RU6 MP7 (12.1.7166.6700) added Auto-Compile support only for RHEL 7.3, which, prior to installing our product on RHEL 7.3, in addition to the prerequisites mentioned in the System Requirements, requires installing gcc ("yum install gcc"), bzip2 ("yum install bzip2") and the presence of the kernel-devel package specific to the currently installed kernel (e.g. if "uname -r" returns "3.10.0-514.6.2.el7.x86_64", run "yum install kernel-devel-3.10.0-514.6.2.el7.x86_64").

SEP 14 MP1 (14.0.2332.0000) added pre-compiled kernel modules for RHEL 7.3 that support all iterations of the 3.10.0-514 kernel.

While SEP 12.1 RU6 MP8 will not add pre-compiled kernel modules for RHEL 7.3, it will have Auto-Compile suppport for the same.

Please subscribe to this article to be notified of any updates.