On 07/10/2021 10.50, Janosch Frank wrote:
Let's just define all of the needed things so we can link libcflat. A significant portion of the lib won't work, like printing and allocation but we can still use things like memset() which already improves our lives significantly. Signed-off-by: Janosch Frank <frankja@xxxxxxxxxxxxx> --- s390x/snippets/c/cstart.S | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/s390x/snippets/c/cstart.S b/s390x/snippets/c/cstart.S index 031a6b83..2d397669 100644 --- a/s390x/snippets/c/cstart.S +++ b/s390x/snippets/c/cstart.S @@ -20,6 +20,20 @@ start: lghi %r15, stackptr sam64 brasl %r14, main +/* + * Defining things that the linker needs to link in libcflat and make + * them result in sigp stop if called. + */ +.globl sie_exit +.globl sie_entry +.globl smp_cpu_setup_state +.globl ipl_args +.globl auxinfo +sie_exit: +sie_entry: +smp_cpu_setup_state: +ipl_args: +auxinfo:
I think this likely could be done in a somewhat nicer way, e.g. by moving mem_init() and sclp_memory_setup() into a separate .c file in the lib, and by moving expect_pgm_int(), fixup_pgm_int() and friends into another separate .c file, too, so that we e.g. do not need to link against the code that uses sie_entry and sie_exit ... but that's a major rework on its own, so for the time being:
Acked-by: Thomas Huth <thuth@xxxxxxxxxx>