arm-none-eabi-gcc.exe depends on libgcc_s_sjlj-1.dll
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GNU Arm Embedded Toolchain |
New
|
Undecided
|
Unassigned |
Bug Description
Custom build of GNU Arm Embedded Toolchain 10.3-2021.07 on Ubuntu 18.04 host with MinGW 7.3-win32 toolchain produces GCC windows binaries that cannot be executed on Windows due to missing libgcc_s_sjlj-1.dll dependency. For example, executing arm-none-
The code execution cannot proceed because libgcc_s_sjlj-1.dll was not found. Reinstalling the program may fix this problem.
Build environment (configured according to How-to-
Ubuntu 18.04 with i686-w64-
Run environment:
Windows 10 x64
I was able to address the issue by adding "--disable-
I analyzed this issue in depth and discovered that the root cause of arm-none- eabi-gcc. exe being linked dynamically against libgcc_s_sjlj-1.dll and libstdc++6.dll was not related to GCC configure flags like "--disable- sjlj-exceptions ". In my local build (driven by build-toolchain .sh), "make all-gcc" was followed by "make install-gcc" - the install target triggered rebuild of all toolchain binaries due to incorrect timestamp of one of the prerequisite libraries (the issue is visible in the build log as make warning "file has modification time in the future"). The binaries produced by "make all-gcc" were linked statically against the mingw runtime libraries, while the binaries produced by "make install-gcc" - linked dynamically for unidentified reason. Once I fixed my build scripts to avoid the make timestamp issue, "install-gcc" no longer replaced static binaries with dynamic binaries, and the resulting toolchain was correct.
Please close this ticket as there is no issue in GCC configure scripts and build scripts in Arm source package.