Build-wrapper-linux-x86-64: not found| Alpine Linux

I have an Alpine Linux Docker image that includes the installation of build-wrapper-linux-x86 and sonar-scanner. The relevant Dockerfile section is as follows:

RUN curl -JLO -k --output-dir / https://sonarqube.oneeuronet.com/static/cpp/build-wrapper-linux-x86.zip
RUN unzip build-wrapper-linux-x86.zip
RUN apk add sonar-scanner --allow-untrusted --repository=https://alpine-virtual/edge/testing/

However, when attempting to execute the following command, I encountered an error stating that build-wrapper-linux-x86 could not be found. I’ve already set the path using export PATH="$PATH:/buildwrapper/build-wrapper-linux-x86" , but the issue persists:

/build-wrapper-linux-x86/build-wrapper-linux-x86-64 --out-dir build_wrapper_output_directory make -C ./Mayank/Product/release -j$(($(nproc)+1))

Running ldd on build-wrapper-linux-x86-64 yielded the following errors:
/build-wrapper-linux-x86 # ldd build-wrapper-linux-x86-64
/lib64/ld-linux-x86-64.so.2 (0x7f10aed11000)
libc.so.6 => /lib64/ld-linux-x86-64.so.2 (0x7f10aed11000)
Error loading shared library ld-linux-x86-64.so.2: No such file or directory (needed by build-wrapper-linux-x86-64)
Error relocating build-wrapper-linux-x86-64: getwd: symbol not found
Error relocating build-wrapper-linux-x86-64: __sprintf_chk: symbol not found
Error relocating build-wrapper-linux-x86-64: __strftime_l: symbol not found

Hey there.

What version of SonarQube are you using?

Hi @Colin sorry for the late response, we are using SonarQube 9.9.3

Thanks. In the meantime, one of our developers let me know that we don’t support analysis on Alpine. There is a ticket here to track traction, and I’ve added this thread.

Aah, @Colin Thankyou for the update

I switched to "Build using compilation database " in Alpine. It seems like the analysis completed successfully, but I encountered the following issue:

2024-02-06T09:19:30.8614648Z 09:19:30.860 INFO: Found empty cache on server
2024-02-06T09:19:30.8785347Z 09:19:30.877 DEBUG: Probing compiler: [/usr/bin/clang++, -x, c++, --std, c++14, -v, -dM, -E, -]
2024-02-06T09:19:31.5422858Z 09:19:31.541 DEBUG: eslint-bridge server will shutdown
2024-02-06T09:19:31.5452447Z 09:19:31.544 DEBUG: eslint-bridge server closed
2024-02-06T09:19:31.5462855Z 09:19:31.545 INFO: Time spent writing ucfgs 24ms
2024-02-06T09:19:32.3073092Z 09:19:32.306 INFO: ------------------------------------------------------------------------
2024-02-06T09:19:32.3074140Z 09:19:32.306 INFO: EXECUTION FAILURE
2024-02-06T09:19:32.3075493Z 09:19:32.306 INFO: ------------------------------------------------------------------------
2024-02-06T09:19:32.3076090Z 09:19:32.307 INFO: Total time: 2:05.376s
2024-02-06T09:19:32.3914534Z 09:19:32.390 INFO: Final Memory: 107M/456M
2024-02-06T09:19:32.3916138Z 09:19:32.390 INFO: ------------------------------------------------------------------------
2024-02-06T09:19:32.3917365Z 09:19:32.390 ERROR: Error during SonarScanner execution
2024-02-06T09:19:32.3920212Z java.lang.IllegalStateException: java.io.IOException: Cannot run program "/__w/QA-TEST/QA-TEST/.scannerwork/.sonartmp/1739467429620489240/subprocess" (in directory "/__w/QA-TEST/QA-TEST/QA-TEST/Product/release"): error=2, No such file or directory
2024-02-06T09:19:32.3922338Z 	at com.sonar.cpp.driver.ProcessExecutor.execute(ProcessExecutor.java:73)
2024-02-06T09:19:32.3923585Z 	at com.sonar.cpp.driver.ProcessExecutor.execute(ProcessExecutor.java:44)
2024-02-06T09:19:32.3925082Z 	at com.sonar.cpp.analyzer.ClangDriver.lambda$probeCompiler$9(ClangDriver.java:759)
2024-02-06T09:19:32.3926269Z 	at java.base/java.util.HashMap.computeIfAbsent(HashMap.java:1220)
2024-02-06T09:19:32.3927422Z 	at com.sonar.cpp.analyzer.ClangDriver.probeCompiler(ClangDriver.java:749)
2024-02-06T09:19:32.3928634Z 	at com.sonar.cpp.analyzer.ClangDriver.onCapture(ClangDriver.java:488)
2024-02-06T09:19:32.3929864Z 	at com.sonar.cpp.analyzer.CompilerDrivers.onCapture(CompilerDrivers.java:34)
2024-02-06T09:19:32.3931131Z 	at com.sonar.cpp.plugin.CFamilySensor.lambda$process$17(CFamilySensor.java:908)
2024-02-06T09:19:32.3932499Z 	at com.sonar.cpp.plugin.CompileCommandsReader.readCaptures(CompileCommandsReader.java:60)
2024-02-06T09:19:32.3937908Z 	at com.sonar.cpp.plugin.CFamilySensor.process(CFamilySensor.java:905)
2024-02-06T09:19:32.3939615Z 	at com.sonar.cpp.plugin.CFamilySensor.process(CFamilySensor.java:410)
2024-02-06T09:19:32.3941208Z 	at com.sonar.cpp.plugin.CFamilySensor.execute(CFamilySensor.java:215)
2024-02-06T09:19:32.3942817Z 	at org.sonar.scanner.sensor.AbstractSensorWrapper.analyse(AbstractSensorWrapper.java:64)
2024-02-06T09:19:32.3944799Z 	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:88)
2024-02-06T09:19:32.3946546Z 	at org.sonar.scanner.sensor.ModuleSensorsExecutor.execute(ModuleSensorsExecutor.java:64)
2024-02-06T09:19:32.3948468Z 	at org.sonar.scanner.scan.SpringModuleScanContainer.doAfterStart(SpringModuleScanContainer.java:82)
2024-02-06T09:19:32.3953851Z 	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
2024-02-06T09:19:32.3957990Z 	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
2024-02-06T09:19:32.3960134Z 	at org.sonar.scanner.scan.SpringProjectScanContainer.scan(SpringProjectScanContainer.java:403)
2024-02-06T09:19:32.3962150Z 	at org.sonar.scanner.scan.SpringProjectScanContainer.scanRecursively(SpringProjectScanContainer.java:399)
2024-02-06T09:19:32.3965681Z 	at org.sonar.scanner.scan.SpringProjectScanContainer.doAfterStart(SpringProjectScanContainer.java:368)
2024-02-06T09:19:32.3967762Z 	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
2024-02-06T09:19:32.3969745Z 	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
2024-02-06T09:19:32.3972267Z 	at org.sonar.scanner.bootstrap.SpringGlobalContainer.doAfterStart(SpringGlobalContainer.java:137)
2024-02-06T09:19:32.3974521Z 	at org.sonar.core.platform.SpringComponentContainer.startComponents(SpringComponentContainer.java:188)
2024-02-06T09:19:32.3976456Z 	at org.sonar.core.platform.SpringComponentContainer.execute(SpringComponentContainer.java:167)
2024-02-06T09:19:32.3978035Z 	at org.sonar.batch.bootstrapper.Batch.doExecute(Batch.java:72)
2024-02-06T09:19:32.3979462Z 	at org.sonar.batch.bootstrapper.Batch.execute(Batch.java:66)
2024-02-06T09:19:32.3981234Z 	at org.sonarsource.scanner.api.internal.batch.BatchIsolatedLauncher.execute(BatchIsolatedLauncher.java:46)
2024-02-06T09:19:32.3983906Z 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
2024-02-06T09:19:32.3985679Z 	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
2024-02-06T09:19:32.3987657Z 	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
2024-02-06T09:19:32.3989279Z 	at java.base/java.lang.reflect.Method.invoke(Method.java:568)
2024-02-06T09:19:32.3991139Z 	at org.sonarsource.scanner.api.internal.IsolatedLauncherProxy.invoke(IsolatedLauncherProxy.java:60)
2024-02-06T09:19:32.3992760Z 	at jdk.proxy1/jdk.proxy1.$Proxy0.execute(Unknown Source)
2024-02-06T09:19:32.3994335Z 	at org.sonarsource.scanner.api.EmbeddedScanner.doExecute(EmbeddedScanner.java:189)
2024-02-06T09:19:32.3996011Z 	at org.sonarsource.scanner.api.EmbeddedScanner.execute(EmbeddedScanner.java:138)
2024-02-06T09:19:32.3997456Z 	at org.sonarsource.scanner.cli.Main.execute(Main.java:126)
2024-02-06T09:19:32.3998676Z 	at org.sonarsource.scanner.cli.Main.execute(Main.java:81)
2024-02-06T09:19:32.3999852Z 	at org.sonarsource.scanner.cli.Main.main(Main.java:62)
2024-02-06T09:19:32.4002944Z Caused by: java.io.IOException: Cannot run program "/__w/QA-TEST/QA-TEST/.scannerwork/.sonartmp/1739467429620489240/subprocess" (in directory "/__w/QA-TEST/QA-TEST/QA-TEST/Product/release"): error=2, No such file or directory
2024-02-06T09:19:32.4005299Z 	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1143)
2024-02-06T09:19:32.4006688Z 	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1073)
2024-02-06T09:19:32.4008069Z 	at com.sonar.cpp.driver.ProcessExecutor.execute(ProcessExecutor.java:57)
2024-02-06T09:19:32.4009085Z 	... 39 more
2024-02-06T09:19:32.4010305Z Caused by: java.io.IOException: error=2, No such file or directory
2024-02-06T09:19:32.4011513Z 	at java.base/java.lang.ProcessImpl.forkAndExec(Native Method)
2024-02-06T09:19:32.4012746Z 	at java.base/java.lang.ProcessImpl.<init>(ProcessImpl.java:314)
2024-02-06T09:19:32.4014218Z 	at java.base/java.lang.ProcessImpl.start(ProcessImpl.java:244)
2024-02-06T09:19:32.4015478Z 	at java.base/java.lang.ProcessBuilder.start(ProcessBuilder.java:1110)
2024-02-06T09:19:32.4016417Z 	... 41 more
2024-02-06T09:19:32.4017019Z 09:19:32.391 ERROR: 
2024-02-06T09:19:32.4018330Z 09:19:32.391 ERROR: Re-run SonarScanner using the -X switch to enable full debug logging.
2024-02-06T09:19:32.7446840Z ##[error]Process completed with exit code 1.
2024-02-06T09:19:32.7665076Z Post job cleanup.
2024-02-06T09:19:32.7671515Z ##[command]/usr/local/bin/docker exec  075383154f260b1118e918efa341ccb13fc5862aa53ffca7a4787e098f1ec4f0 sh -c "cat /etc/*release | grep ^ID"

Hi @mayankxlon and thanks for sharing the problem with us,

Unfortunately, we don’t support running CFamily analysis on Alpine, our analyzer requires a glibc-based distribution. This applies when using both the compilation database and the build-wrapper approaches. As mentioned by @Colin earlier, we have this ticket to record traction.

Note that the “No such file or directory” is a misleading error from musl’s dynamic linker that is raised in such cases even when the file exists.

I hope this helps and let us know if you have any further questions.

Best regards,
Michael

@michael.jabbour Thankyou so much for your support

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.