Bss Section In Memory
The bss contains all the uninitalized data.
Bss section in memory. This segment size is also variable as per user allocation. The error is generated when the linker tries to place a section in this case the bss section and either the start or end address of this section is outside of the range of the memory segment in this case the sram segment. Typically only the length of the bss section but no data is stored in the object file.
For instance a variable defined as static int i. Initialized static and global variable stored in data segment. By placing variables with no value in the bss section instead of the data or rodata section which require initial value data the size of the object file is reduced.
Let us now check how the segments data and bss segments size vary with a few sample programs. If you say static int cntactiveusers the contents of cntactiveusers live in the bss. This segment grows from a lower address to a higher address.
This is area of memory allotted for dynamic memory storage such as for malloc and calloc calls. The bss segment contains all global variables and static variables that are initialized to zero or do not have explicit initialization in source code. This is best explained with following global extern variable.
Size command is used to check size of code data and bss segments on linux. This memory area is not anonymous. Memory layout of c program code data bss stack and heap segments.
This error indicates that you have run out of memory in your sram memory segment. The bss memory area is anonymous. Program code stored in text or code segment.