Ericsson / codechecker

CodeChecker is an analyzer tooling, defect database and viewer extension for static and dynamic analyzer tools.
https://codechecker.readthedocs.io
Apache License 2.0
2.27k stars 383 forks source link

Incompatibility Issue with gcc-multilib on ARM Architecture (M1 Mac) #4163

Open feyruzb opened 9 months ago

feyruzb commented 9 months ago

Describe the bug Encountering compatibility issues with gcc-multilib on ARM architecture (M1 Mac) within a virtualized Ubuntu environment.

CodeChecker version CodeChecker analyzer version: 6.23.1 CodeChecker web version: 6.23.1 Git tag information: 6.23.1

To Reproduce Steps to reproduce the behavior:

1)Setup an Ubuntu virtual machine on an M1 Mac. 2)Attempt to install gcc-multilib using "sudo apt-get install gcc-multilib". 3)Encounter error: "Package 'gcc-multilib' has no installation candidate".

or

1)On an ARM-based system, attempt to install development tools with: sudo apt-get install clang clang-tidy cppcheck g++ build-essential curl gcc-multilib git python3-dev python3-venv python3-setuptools. 2)Notice the failure specifically for gcc-multilib with an error: "gcc-multilib: command not found".

Expected behaviour Expected gcc-multilib to install successfully, or require guidance on alternative approaches for ARM architecture.

Desktop (please complete the following information)

Additional context This issue arises during the installation of gcc-multilib on ARM-based systems, like the M1 Mac

bruntib commented 9 months ago

gcc-multilib package is required for the logger module in CodeChecker, so the logger tool compiles to 32bit platforms too. I believe, this 32bit platform support will not be needed in your environment and you can turn this off during the installation process as it's mentioned in the "Notes" section of this documentation: https://github.com/Ericsson/codechecker?tab=readme-ov-file#linux. Could you try building CodeChecker with this command? BUILD_LOGGER_64_BIT_ONLY=YES make package

feyruzb commented 8 months ago

Neither setting BUILD_LOGGER_64_BIT_ONLY nor using BUILD_LOGGER_64_BIT_ONLY=YES in the 'make package' command resolves the issue. However, Mr. Gabor's omit_logger patch effectively fixes it. omit_logger.patch