vmware / chap

chap analyzes un-instrumented core files for leaks, memory growth, and corruption
Other
362 stars 42 forks source link

Chep complains a slate build environment and requires a rebuild #15

Open qihongw opened 2 years ago

qihongw commented 2 years ago

Describe the bug

Your chap binary was compiled using a stale build environment that generates invalid std::regex code. Upgrade your build environment and remake chap.

My cmake is 3.17.5, gcc is 4.8.5. Linux: Centos 7.9 Which one is too old?

Reproduction steps

1. ./chap `ls -t core.* | head -1`
2.
3.
...

Expected behavior

Tell us the lowest version that is suported.

Additional context

No response

timboddy commented 2 years ago

Upgrading to use Centos 8 will fix the issue in your case. I am not sure what is the earliest version of gcc that doesn't have the problem at present. The way the code works at present is to test with a simple regular expression "[^ab]" and to print the error message and exit if that simple regular expression cannot be handled properly. I wouldn't mind changing the software to recommend a particular minimum build but to do that I'd first need to know what that minimum build is.

timboddy commented 2 years ago

https://stackoverflow.com/questions/54150650/how-to-update-gcc-from-4-8-to-8-2-on-rhel7 seems to imply that you can stay on Centos7 but install devtoolset-8 to use gcc 8.2.1 without messing up your own installation. I have not tried this myself but it did get several up-votes on stackoverflow.

ogalbxela commented 3 weeks ago

Likely related to the https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53631

gcc 4.8.5 lacks of full support of std::regex

timboddy commented 2 weeks ago

@ogalbxela thank you for the great link. I have updated the code to use some c++17 features, and have changed the documentation accordingly.

timboddy commented 2 weeks ago

I think this is resolved now because compilers prior to gcc 9 are no longer recommended.