-
SubI compiled the msquic-2.4.7 source code on the CentOS8 system. After configuring the environment, the compilation was successful (mabye?). Subsequently, an error occurred during local runtime. When I copied the same code to the Ubuntu system, it ran successfully without errors. Linux system: Centos8 QuestionThis error did not occur in the Ubuntu system. Could it be caused by the absence of UDP_SEGMENT on my end? I personally suspect that it might be due to the kernel version issue, but it's also possible that the versions of some dependencies are too low. Are there any relevant clues? The following is the background information I provided. Compilation stageThe only difference between the compilation in CentOS and that in Ubuntu is
Its location in the CMakeList
It contains UDP_SEGMENT (but I haven't had time to change the path in the CMakeList) The detailed compilation output is as follows: Runtime stageThe commands I used during the runtime stage are
The GDB information after the failure of the run is as follows:
more gdb info: Subsequently, I conducted analysis using Valgrind.:
more Valgrind info: |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments
-
ldd info:
|
Beta Was this translation helpful? Give feedback.
-
Thanks to @nibanks for the help and reminder. When I disabled the UDP_SEGMENT (with #undef UDP_SEGMENT in the epoll file) under Ubuntu, the exact same error that occurred in CentOS also showed up in Ubuntu. |
Beta Was this translation helpful? Give feedback.
-
Through experiments, msquic will by default get the
As shown in the CMakeList file In CentOS 8, the
This results in the UDP_SEGMENT not being recognizable during the compilation and runtime phases in CentOS8. Before the problem is fixed, mabye there are two temporary solutions:
|
Beta Was this translation helpful? Give feedback.
Through experiments, msquic will by default get the
UDP_SEGMENT
macro from the /usr/include/netinet/udp.h file (this is the path in both Ubuntu and CentOS8), which is defined asAs shown in the CMakeList file
check_symbol_exists(UDP_SEGMENT netinet/udp.h HAS_UDP_SEGMENT)
msquic uses the
UDP_SEGMENT
in the./src/platform/datapath_epoll.c
file.In CentOS 8, the
/usr/include/netinet/udp.h
file does not contain UDP_SEGMENT.the UDP_SEGMENT macro is defined in
This results in the UDP_SEGMENT not being recognizable during the compilation and runtime phases in CentOS8.
Moreover,…