Age | Commit message (Collapse) | Author | Files | Lines |
|
It seems that newer toolchains get us multiple ctors sections to link in
rather than just one. If we discard them (as we were doing), then we
don't have a working gcov build (and we get the "doesn't look sane"
warning on boot).
So, include ctors* and all is well.
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
|
|
This also tidies up linker script symbol declarations and adds
_rodata_mem symbol for the next change to use.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.ibm.com>
|
|
Fixes GCOV builds with gcc7, which uses this.
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
GCOV enabled builds with modern GCC are getting bigger.
At some point we're going to have to go do something sensible,
but even on our larger systems we're not *that* close to running
out of heap that this would be a problem.
HEAP is now 12MB rather than 13MB.
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
Add an experimental option to do basic dead code and data elimintation
with -ffunction-sections/-fdata-sections/--gc-sections.
This saves about 80kB of text/data.
Also remove the use of of -ffunction-sections by default. This predates
git history, but I don't think there is a good reason to use it without
--gc-sections. The GCC manual says:
Only use these options when there are significant benefits from
doing so. When you specify these options, the assembler and linker
create larger object and executable files and are also slower. You
cannot use gprof on all systems if you specify this option, and you
may have problems with debugging if you specify both this option
and -g.
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
Previous patch reduced reserved space in spira structure. Now its safe
to reduce the memory for spira section from 2K to 1K. Create separate
memory section with 1K size for SPIRA-H.
Also initialize SPIRA-H. FSP makes use of this information to pass various
boot time data (like SPIRA-S, etc) to host.
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
Anton sent a similar patch to Linus, here is his comment:
<<
Recent toolchains force the TOC to be 256 byte aligned. We need
to enforce this alignment in our linker script, otherwise pointers
to our TOC variables (...) could be incorrect.
>>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
As part of setting up GCOV data structures correctly, GCC/GCOV generates
a bunch of constructor routines that the C runtime is expected to run
really early on.
skiboot was not running GCC generated constructors. Luckily, it's really
easy to do so.
This patch will run GCC constructors very early on during boot (if there
are any)
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
When built with gcov, skiboot is >1MB (closer to 1.5MB) and there
were a few assumptions about skiboot being <1MB.
The biggest one was that when code got larger, we'd have the sbss section
start in the middle of code, so that when we were going to relocate ourselves,
we'd only get the first 1MB of skiboot relocated, which excluded the
_DYNAMIC section, meaning that relocate() would not find the right
sections.
We also needed to not start writing over random parts of skiboot.
Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
|
|
We use a double link technique, doing a first pass with a .o containing
a dummy symbol map, then re-linking with a new .o
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
|
Separate text translation from capture of the backtrace
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
|
At present CPU control area ntuple in SPIRA structure is NULL.
ATTN component in Service Processor side checks for this field and if its empty,
it logs hardcoded SRC (0xBB821410) and generates SYSDUMP. So we have 1 SRC for
all failure (assert call) from OPAL side. This makes difficult to debug the issue.
Service processor provides attention area interface (FIPS PHyp Attentions spec),
so that we can pass SRC and user data (error message) to service processor.
This will helps us identify different failures in OPAL.
This patch enables attention area and provides interface (update_sp_attn_area())
to add src and user data (error message) through assert macro.
Attention SRC format:
1st byte - Opal src type
2-4 bytes - Holds the address of the assert function call
Signed-off-by: Aruna Balakrishnaiah <aruna@linux.vnet.ibm.com>
Signed-off-by: Vasant Hegde <hegdevasant@linux.vnet.ibm.com>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|
|
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
|