That way, data source address does not depend on any other unrelated change in
linker script.
This also fixes cases when .data input section is aligned on 8 bytes. The new
version does not provide any address for the output section so that it is
aligned to the strictest input section. The _data_loadaddr symbol will
always take this alignment into account.
- The library files are now being built into the lib subdirectory of the
source.
- The linker files for each library are being copied into the lib source
subdirectory.
Motivation: The relative locations of files in the source directory after make
are now the same as after make install now. This makes it easier to
reuse examples with their makefiles outside of the libopencm3
sourcecode directory.
IDR represents the level on pin input while ODR is the value requested by the
programmer. This makes a difference for example when using the output as open
drain.
This is needed even in plain C when 64 bit variable (e.g. long long int)
arithmetic is used. For example it is required when newlib is compiled with
--enable-newlib-io-long-long.
Conflicts:
lib/stm32/f1/libopencm3_stm32f1.ld
lib/stm32/f2/libopencm3_stm32f2.ld
Changed the license to LGPL3+ for some makefiles that got ommited in the
previous big patch commit.
Corrected a find and replace error in a linker file.
This fixes a problem where the linker included some padding
bytes between the end of the .text section (_etext) and the
start of the .data section.
The C runtime copies from _etext, so all static initialised data
was corrupted. This change forces the .data section to be written
at _etext to avoid this problem.