mirror of
https://github.com/ibm-s390-linux/s390-tools.git
synced 2026-08-05 02:14:52 +00:00
zipl/boot: Explicitly declare stage2.head as used
Although stage2.head is not directly used in stage2, it is required by other stages. To ensure it is retained during link-time optimization (LTO), explicitly mark it as used. This improves code readability and prevents LTO from mistakenly removing it. Reviewed-by: Mikhail Zaslonko <zaslonko@linux.ibm.com> Reviewed-by: Stefan Haberland <sth@linux.ibm.com> Signed-off-by: Marc Hartmayer <mhartmay@linux.ibm.com> Signed-off-by: Jan Höppner <hoeppner@linux.ibm.com>
This commit is contained in:
committed by
Jan Höppner
parent
49faa1d7fd
commit
99100b3f99
@@ -22,7 +22,7 @@
|
||||
/*
|
||||
* Magic number at start of dump record
|
||||
*/
|
||||
const uint64_t __section(.stage2.head) magic = 0x584d554c54363402ULL; /* XMULT64, version 2 */
|
||||
const uint64_t __used __section(.stage2.head) magic = 0x584d554c54363402ULL; /* XMULT64, version 2 */
|
||||
|
||||
/*
|
||||
* Parameter format for ECKD MV dumper (13 bytes):
|
||||
|
||||
@@ -21,7 +21,7 @@
|
||||
/*
|
||||
* Magic number at start of dump record
|
||||
*/
|
||||
const uint64_t __section(.stage2.head) magic = 0x5845434b44363402ULL; /* "XECKD64", version 2 */
|
||||
const uint64_t __used __section(.stage2.head) magic = 0x5845434b44363402ULL; /* "XECKD64", version 2 */
|
||||
|
||||
/*
|
||||
* Get device characteristics from zipl parameter block
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
/*
|
||||
* Magic number at start of dump record
|
||||
*/
|
||||
const uint64_t __section(.stage2.head) magic = 0x5844464241363401ULL; /* XDFBA64, version 1 */
|
||||
const uint64_t __used __section(.stage2.head) magic = 0x5844464241363401ULL; /* XDFBA64, version 1 */
|
||||
|
||||
/*
|
||||
* FBA dump device partition specification
|
||||
|
||||
@@ -147,4 +147,4 @@ void panic_notify(unsigned long UNUSED(reason))
|
||||
{
|
||||
}
|
||||
|
||||
const uint64_t __section(.stage2.head) stage2_head;
|
||||
const uint64_t __used __section(.stage2.head) stage2_head;
|
||||
|
||||
@@ -38,10 +38,10 @@ struct tape_head {
|
||||
uint64_t ccw2;
|
||||
} __packed;
|
||||
|
||||
const struct tape_head __section(.stage2.head) tape_head = {
|
||||
.psw = PSW_LOAD | STAGE2_ENTRY, /* Start code at 0x2018 */
|
||||
.ccw1 = 0x0700000060000001ULL, /* Rewind ccw */
|
||||
.ccw2 = 0x0200200020003000ULL, /* CCW to load dump tool to 0x2000 */
|
||||
const struct tape_head __used __section(.stage2.head) tape_head = {
|
||||
.psw = PSW_LOAD | STAGE2_ENTRY, /* Start code at 0x2018 */
|
||||
.ccw1 = 0x0700000060000001ULL, /* Rewind ccw */
|
||||
.ccw2 = 0x0200200020003000ULL, /* CCW to load dump tool to 0x2000 */
|
||||
};
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user