rm5248 commented on PR #492:
URL: https://github.com/apache/logging-log4cxx/pull/492#issuecomment-2764592926

   What compiler did you generate the new ABI dump file with?
   
   Taking a look at the compat report, the problems that it's showing are real 
problems with the ABI, but I'm pretty sure they're false positives, although it 
does depend on what compiler is being used.
   
   Testing with g++ 10.2, I get only 5 problems that all appear to be false 
positives:
   * It thinks RootLogger() constructor changed, which the signature did not
   * it thinks Transcoder::decode() changed, but it did not
   * It thinks that the `obj` field in PropertySetter changed from 16 bytes to 
0 bytes
   
   It seems that ubuntu 20 is using g++9.3, which uses C++14 by default.  g++ 
versions 11 and above use C++17 by default.
   
   Some of the errors(e.g. `The parameter pool1 became passed in r12 register 
instead of rbp.`) might be due to the different C++ standard being used, 
although if the name mangling is the same I would expect the calling convention 
to be the same.  It is possible to version symbols with gcc though, so there 
could be an invisible "works with C++ version X" version being added to the 
symbol.
   
   I'm pretty sure the ABI check for C++ is only useful if the same C++ 
standard is used between all of the checks, which is why the abi-check build is 
only on a specific version of ubuntu(and not latest).  From the ABI compliance 
checker page:
   > The ABI dump can be used to create a snapshot of a library ABI in the 
particular environment and then compare it with any other state of the ABI 
changed due to changes in the environment (compiler version, external 
libraries, etc.) or changes in the library API (header files). 
   
   This would imply to me that the change in compiler version and libstdc++ 
version are enough to make the ABI check fail; we're concerned with the last 
part(changes in the library API).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscr...@logging.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org

Reply via email to