Different ABI report for tesseract 4.1.1
Opened this issue · 1 comments
zdenop commented
I tested tesseract 4.1.0 and tesseract 4.1.1 with these steps:
git clone https://github.com/tesseract-ocr/tesseract.git
git checkout 4.1.0
./autogen.sh && ./configure --prefix=/opt/tesseract410 --enable-debug CXXFLAGS="-pedantic -Og"
make -j 4 && make -j 4 training
sudo make install && sudo make training-install
make clean
git checkout 4.1.1
./autogen.sh && ./configure --prefix=/opt/tesseract411 --enable-debug CXXFLAGS="-pedantic -Og"
make -j 4 && make -j 4 training
sudo make install && sudo make training-install
abi-dumper /opt/tesseract410/lib/libtesseract.so.4 -o tesseract-4.1.0.dump -lver tesseract-4.1.0 -public-headers /opt/tesseract410/include/tesseract/
abi-dumper /opt/tesseract411/lib/libtesseract.so.4 -o tesseract-4.1.1.dump -lver tesseract-4.1.1 -public-headers /opt/tesseract411/include/tesseract/
abi-compliance-checker -l tesseract-4.1.1 -old tesseract-4.1.0.dump -new tesseract-4.1.1.dump
chromium-browser compat_reports/tesseract-4.1.1/tesseract-4.1.0_to_tesseract-4.1.1/compat_report.html
According my report there is Compatibility 1 00%. But abi-laboratory.pro report shows only 96.4% backward
Compat. Why?
linuxhw commented
I've checked your data and seems your test is OK in general.
The difference seems to be platform specific. The test at https://abi-laboratory.pro is performed on x86_64, but your test is performed on ARM. The binary compatibility is platform specific. You need to verify compatibility on ALL targeted processor architectures.
Also I see a difference in compile options generated by tesseract Makefile for x86_64 (just rebuild them in the same environment):
4.1.0:
GNU C++14 8.3.0 -march=ivybridge -mmmx -mno-3dnow -msse -mcx16 -msahf -mno-movbe -maes -mno-sha -mpclmul -mpopcnt -mno-abm -mno-lwp -mno-bmi -mno-sgx -mno-pconfig -mno-wbnoinvd -mno-tbm -mno-lzcnt -mno-rtm -mno-hle -mrdrnd -mf16c -mfsgsbase -mno-rdseed -mno-prfchw -mno-adx -mfxsr -mxsave -mxsaveopt -mno-prefetchwt1 -mno-clflushopt -mno-xsavec -mno-xsaves -mno-avx5124fmaps -mno-avx5124vnniw -mno-clwb -mno-mwaitx -mno-clzero -mno-pku -mno-rdpid -mno-gfni -mno-shstk -mno-avx512vbmi2 -mno-avx512vnni -mno-vaes -mno-vpclmulqdq -mno-avx512bitalg -mno-movdiri -mno-movdir64b --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=6144 -mtune=ivybridge -march=ivybridge -march=ivybridge -msse2 -msse3 -mssse3 -msse4.1 -msse4.2 -mavx -mno-sse4a -mno-fma -mno-bmi2 -mno-avx2 -mno-xop -mno-fma4 -mno-avx512f -mno-avx512vl -mno-avx512pf -mno-avx512er -mno-avx512cd -mno-avx512dq -mno-avx512bw -mno-avx512ifma -mno-avx512vbmi -g -g -g -Og -Og -O3 -std=c++14 -fpermissive -fPIC -ffast-math
4.1.1:
GNU C++17 8.3.0 -mtune=generic -march=x86-64 -g -g -Og -Og -std=c++17 -fpermissive -fPIC
Thanks.