Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

executor: fails to compile on CentOS7 #4820

Open
F0burny opened this issue May 18, 2024 · 2 comments
Open

executor: fails to compile on CentOS7 #4820

F0burny opened this issue May 18, 2024 · 2 comments
Labels

Comments

@F0burny
Copy link

F0burny commented May 18, 2024

NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="https://www.centos.org/"
BUG_REPORT_URL="https://bugs.centos.org/"
CentOS Linux release 7.9.2009 (Core)

Current Kernel Version Info:
Linux localhost.localdomain 3.10.0-1160.118.1.el7.x86_64 #1 SMP Wed Apr 24 16:01:50 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux

GCC Version
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/libexec/gcc/x86_64-redhat-linux/4.8.5/lto-wrapper
Target: x86_64-redhat-linux
Configured with: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --enable-gnu-unique-object --enable-linker-build-id --with-linker-hash-style=gnu --enable-languages=c,c++,objc,obj-c++,java,fortran,ada,go,lto --enable-plugin --enable-initfini-array --disable-libgcj --with-isl=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/isl-install --with-cloog=/builddir/build/BUILD/gcc-4.8.5-20150702/obj-x86_64-redhat-linux/cloog-install --enable-gnu-indirect-function --with-tune=generic --with-arch_32=x86-64 --build=x86_64-redhat-linux
Thread model: posix
gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)

LibC version:
GNU C Library (GNU libc) stable release version 2.17, by Roland McGrath et al.
Copyright (C) 2012 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Compiled by GNU CC version 4.8.5 20150623 (Red Hat 4.8.5-44).
Compiled on a Linux 3.10.0 system on 2022-05-18.
Available extensions:
The C stubs add-on version 2.1.2.
crypt add-on version 2.1 by Michael Glad and others
GNU Libidn by Simon Josefsson
Native POSIX Threads Library by Ulrich Drepper et al
BIND-8.2.3-T5B
RT using linux kernel aio
libc ABIs: UNIQUE IFUNC

followed directions on generic linux kernel to make the syzkaller program and compilation errors at trying to compile the executor with the following errors:

gcc -o ./bin/linux_amd64/syz-executor executor/executor.cc
-m64 -std=c++11 -I. -Iexecutor/_include -O2 -pthread -Wall -Werror -Wparentheses -Wframe-larger-than=16384 -Wno-stringop-overflow -Wno-array-bounds -Wno-format-overflow -Wno-unused-but-set-variable -Wno-unused-command-line-argument -DGOOS_linux=1 -DGOARCH_amd64=1
-DHOSTGOOS_linux=1 -DGIT_REVISION="c2e0726105cc811a456d900c62443159acc29c32"
In file included from executor/common.h:489:0,
from executor/executor.cc:195:
executor/common_linux.h: In function ‘void netlink_add_hsr(nlmsg*, int, const char*, const char*, const char*)’:
executor/common_linux.h:438:22: error: ‘IFLA_HSR_SLAVE1’ was not declared in this scope
netlink_attr(nlmsg, IFLA_HSR_SLAVE1, &ifindex1, sizeof(ifindex1));
^
executor/common_linux.h:440:22: error: ‘IFLA_HSR_SLAVE2’ was not declared in this scope
netlink_attr(nlmsg, IFLA_HSR_SLAVE2, &ifindex2, sizeof(ifindex2));
^
In file included from executor/common.h:489:0,
from executor/executor.cc:195:
executor/common_linux.h: In function ‘void netlink_add_ipvlan(nlmsg*, int, const char*, const char*, uint16, uint16)’:
executor/common_linux.h:519:22: error: ‘IFLA_IPVLAN_MODE’ was not declared in this scope
netlink_attr(nlmsg, IFLA_IPVLAN_MODE, &mode, sizeof(mode));
^
In file included from executor/common.h:489:0,
from executor/executor.cc:195:
executor/common_linux.h: In function ‘void initialize_netdevices()’:
executor/common_linux.h:1642:60: error: ‘IPVLAN_MODE_L2’ was not declared in this scope
netlink_add_ipvlan(&nlmsg, sock, "ipvlan0", "veth0_vlan", IPVLAN_MODE_L2, 0);
^
At global scope:
cc1plus: error: unrecognized command line option "-Wno-unused-command-line-argument" [-Werror]
cc1plus: error: unrecognized command line option "-Wno-format-overflow" [-Werror]
cc1plus: error: unrecognized command line option "-Wno-stringop-overflow" [-Werror]
cc1plus: all warnings being treated as errors

@F0burny F0burny added the bug label May 18, 2024
@F0burny
Copy link
Author

F0burny commented May 18, 2024

tried again with gcc-version:
gcc version 9.3.1 20200408 (Red Hat 9.3.1-2) (GCC)

with the following error:
gcc -o ./bin/linux_amd64/syz-executor executor/executor.cc
-m64 -std=c++11 -I. -Iexecutor/_include -O2 -pthread -Wall -Werror -Wparentheses -Wunused-const-variable -Wframe-larger-than=16384 -Wno-stringop-overflow -Wno-array-bounds -Wno-format-overflow -Wno-unused-but-set-variable -Wno-unused-command-line-argument -DGOOS_linux=1 -DGOARCH_amd64=1
-DHOSTGOOS_linux=1 -DGIT_REVISION="c2e0726105cc811a456d900c62443159acc29c32"
In file included from executor/common.h:489,
from executor/executor.cc:195:
executor/common_linux.h: In function ‘void netlink_add_hsr(nlmsg*, int, const char*, const char*, const char*)’:
executor/common_linux.h:438:22: error: ‘IFLA_HSR_SLAVE1’ was not declared in this scope
438 | netlink_attr(nlmsg, IFLA_HSR_SLAVE1, &ifindex1, sizeof(ifindex1));
| ^~~~~~~~~~~~~~~
executor/common_linux.h:440:22: error: ‘IFLA_HSR_SLAVE2’ was not declared in this scope
440 | netlink_attr(nlmsg, IFLA_HSR_SLAVE2, &ifindex2, sizeof(ifindex2));
| ^~~~~~~~~~~~~~~
In file included from executor/common.h:489,
from executor/executor.cc:195:
executor/common_linux.h: In function ‘void netlink_add_ipvlan(nlmsg*, int, const char*, const char*, uint16, uint16)’:
executor/common_linux.h:519:22: error: ‘IFLA_IPVLAN_MODE’ was not declared in this scope; did you mean ‘IFLA_MACVLAN_MODE’?
519 | netlink_attr(nlmsg, IFLA_IPVLAN_MODE, &mode, sizeof(mode));
| ^~~~~~~~~~~~~~~~
| IFLA_MACVLAN_MODE
In file included from executor/common.h:489,
from executor/executor.cc:195:
executor/common_linux.h: In function ‘void initialize_netdevices()’:
executor/common_linux.h:1642:60: error: ‘IPVLAN_MODE_L2’ was not declared in this scope; did you mean ‘IPVLAN_MODE_L3S’?
1642 | netlink_add_ipvlan(&nlmsg, sock, "ipvlan0", "veth0_vlan", IPVLAN_MODE_L2, 0);
| ^~~~~~~~~~~~~~
| IPVLAN_MODE_L3S
At global scope:
cc1plus: error: unrecognized command line option ‘-Wno-unused-command-line-argument’ [-Werror]
cc1plus: all warnings being treated as errors
make: *** [Makefile:136: executor] Error 1

@dvyukov dvyukov changed the title executor.cc fails to compile on CentOS7 executor: fails to compile on CentOS7 May 21, 2024
@dvyukov
Copy link
Collaborator

dvyukov commented May 21, 2024

Hi,

Is there an easy fix for this?
It looks like the OS provides very old system headers.
Since it's not possible to write linux code that compiled on a random OS, we provide syz-env container for building.
If there is no easy fix, I would say the solution is to use syz-env (or a newer OS, IFLA_HSR_SLAVE1 was added >10 years ago).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants