There are only a few new features to report this month:
* GCC now supports a couple of new function attributes to improve its pointer alignment analysis:
Tells gcc that the annotated function returns a pointer to memory whose alignment is specified by parameter N (counting from 1). So for example:
void * my_alloc (size_t A, size_t B) __attribute__((alloc_align(2)));
tells gcc that my_alloc returns memory aligned to the value of the B parameter.
If the alignment is fixed a different function attribute can be used:
This tells gcc that the function returns a pointer to memory that is aligned to a N-byte boundary.
* The x86 port of GCC now supports a couple of new command line options:
This makes the long double type 128 bits long, which is compatible with the 64-bit Bionic C library.
Generates code that can run in 16-bit mode. The int, long and pointer types are still 32-bits long, but the code will work in a 16-bit environment.
* The ARM port of GCC now accepts v7ve as an architecture name. This is the arm V7-A architecture with the virtualization extensions supported.
Starting this month, I am going to try to report changes in GDB as well. I am not a GDB expert so feel free to let me know of any mistakes I make or features I miss. To start with though I am just going to cheat and reproduce some of the information found in the gdb/NEWS file about changes made to the development version of GDB since the 7.7 release:
* GDB now has support for scripting using Guile (version 2.0.9 or later). Whether this feature is actually is available in a specific gdb executable is determined at configure time. A couple of new commands are available to make use of the feature:
guile <code> Passes <code> to the Guile interpreter.
guile-repl Starts a Guile interactive prompt.
set guile print-stack (none|message|full)
Displays a stack trace when an error is encountered in a Guile script.
The source command is now capable of sourcing Guile scripts.
* GDB now supports the PowerPC64 GNU/Linux little-endian target.
* The GDBserver has support for a new command line option:
This enables the generation of timestamps to accompany any text output.
It is intended that the --debug-format= option will be extended with other parameters in the future.
* The command record function-call-history supports a new modifier /c to indent the function names based on their call stack depth.
* The btrace record target now supports the record goto command. For locations inside the execution trace, the back trace is computed based on the information stored in the execution trace.
The btrace record target now also supports limited reverse execution and replay. But the target does not record data and therefore does not allow reading memory or registers.