-
Notifications
You must be signed in to change notification settings - Fork 48
Known Issues: GNU Toolchain for DWC ARC Processors, v2016.03
GCC's link time optimization feature in 4.8 has not yet been ported to ARC.
Do not compile with -flto
options.
When debugging user space programs on Linux via GDB, users may notice GDB warning messages indicating "Could not load shared symbols for ." This warning happens when gdbserver is invoked with non-full path for the target binary, for example gdbserver :10000 hello
. Gdbserver works fine with this invocation and resolves the binary location using PATH however the GDB client emits the warning.
There are no negative effects from these messages and debugging works fine.
Start gdbserver with full path to target program, for example gdbserver :10000 /usr/bin/hello
.
The –fPIE
option is not yet supported in the uclibc port for ARC GNU and use of the option may result in seg faults.
Don’t use –fPIE
.
According to gcc.gnu.org/onlinedocs/gcc/Link-Options.html, -nostdlib
should not link libgcc but previous releases of ARC GNU toolchain linked libgcc regardless under this option. The ARC GNU toolchain supported option –reallynostdlib
for –nostdlib
behavior.
In ARC GNU 4.8 the –reallynostdlib
has been deprecated and the toolchain implements standard –nostdlib
behavior, meaning libgcc is not linked under –nostdlib
.
The GCC documentation explicitly mentions that users usually still need libgcc when wanting to avoid other standard libraries. The recommendation is for users to specify –lgcc
as well when specifying –nostdlib
to avoid any problems.
Dynamically linked ARC Linux user applications may fail for kernels configured for a page size of 16K (default is 8K) Enabling 16k page size support in the ARC GNU toolchain requires the elf loadable segments (program segments) to be mapped at 16k boundary (the current alignment is 4k) which causes the kernel to fail when loading the main executable (in both static and dynamically linked scenarios).
The work-around is to use linker option -Wl,-z,max-page-size=16384
In 'Debug Configurations' dialog of IDE it is possible to choose ARC GDB Server to be used for 'ARC C/C++ application' configuration. For each available server there are some specific options which should be displayed only if this server is chosen. However, when changing ARC GDB Server's value on Ubuntu, these options do not appear.
Select ARC GDB server, press 'Apply', then close debug configuration dialog and open it again. This way all the necessary fields become visible.