kvm.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Janosch Frank <frankja@linux.ibm.com>
To: pbonzini@redhat.com
Cc: kvm@vger.kernel.org, frankja@linux.ibm.com, david@redhat.com,
	borntraeger@de.ibm.com, linux-s390@vger.kernel.org,
	imbrenda@linux.ibm.com, thuth@redhat.com
Subject: [kvm-unit-tests GIT PULL 14/17] s390x: snippets: Define all things that are needed to link the libc
Date: Mon, 18 Oct 2021 14:26:32 +0200	[thread overview]
Message-ID: <20211018122635.53614-15-frankja@linux.ibm.com> (raw)
In-Reply-To: <20211018122635.53614-1-frankja@linux.ibm.com>

From: Thomas Huth <thuth@redhat.com>

In the long run, we want to use parts of the libc like memset() etc.,
too. However, to be able to link it correctly, we have to provide
some stub functions like puts() and exit() to avoid that too much
other stuff from the lib folder gets pulled into the binaries, which
we cannot provide in the snippets (like the sclp support).

Signed-off-by: Thomas Huth <thuth@redhat.com>
Message-Id: <20211008092649.959956-1-thuth@redhat.com>
Link: https://lore.kernel.org/kvm/20211008092649.959956-1-thuth@redhat.com/
Reviewed-by: Janosch Frank <frankja@linux.ibm.com>
Signed-off-by: Janosch Frank <frankja@linux.ibm.com>
---
 s390x/Makefile            |  2 +-
 s390x/snippets/c/cstart.S | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/s390x/Makefile b/s390x/Makefile
index 5d1a33a0..d18b08b0 100644
--- a/s390x/Makefile
+++ b/s390x/Makefile
@@ -81,7 +81,7 @@ asmlib = $(TEST_DIR)/cstart64.o $(TEST_DIR)/cpu.o
 FLATLIBS = $(libcflat)
 
 SNIPPET_DIR = $(TEST_DIR)/snippets
-snippet_asmlib = $(SNIPPET_DIR)/c/cstart.o
+snippet_asmlib = $(SNIPPET_DIR)/c/cstart.o lib/auxinfo.o
 
 # perquisites (=guests) for the snippet hosts.
 # $(TEST_DIR)/<snippet-host>.elf: snippets = $(SNIPPET_DIR)/<c/asm>/<snippet>.gbin
diff --git a/s390x/snippets/c/cstart.S b/s390x/snippets/c/cstart.S
index 031a6b83..aaa5380c 100644
--- a/s390x/snippets/c/cstart.S
+++ b/s390x/snippets/c/cstart.S
@@ -20,6 +20,17 @@ start:
 	lghi	%r15, stackptr
 	sam64
 	brasl	%r14, main
+	/*
+	 * If main() returns, we stop the CPU with the code below. We also
+	 * route some functions that are required by the libc (but not usable
+	 * from snippets) to the CPU stop code below, so that snippets can
+	 * still be linked against the libc code (to use non-related functions
+	 * like memset() etc.)
+	 */
+.global puts
+.global exit
+puts:
+exit:
 	/* For now let's only use cpu 0 in snippets so this will always work. */
 	xgr	%r0, %r0
 	sigp    %r2, %r0, SIGP_STOP
-- 
2.31.1


  parent reply	other threads:[~2021-10-18 12:38 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-10-18 12:26 [kvm-unit-tests GIT PULL 00/17] s390x update 2021-10-18 Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 01/17] s390x: uv-host: Explain why we set up the home space and remove the space change Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 02/17] lib: s390x: Control register constant cleanup Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 03/17] lib: s390x: Print addressing related exception information Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 04/17] s390x: skey: Test for ADDRESSING exceptions Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 05/17] s390x: mvpg-sie: Remove unused variable Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 06/17] s390x: uv: Tolerate 0x100 query return code Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 07/17] s390x: uv-host: Fence a destroy cpu test on z15 Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 08/17] lib: s390x: uv: Fix share return value and print Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 09/17] lib: s390x: uv: Add UVC_ERR_DEBUG switch Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 10/17] lib: s390x: Add access key argument to tprot Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 11/17] lib: s390x: Print PGM code as hex Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 12/17] s390x: Add sthyi cc==0 r2+1 verification Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 13/17] s390x: snippets: Set stackptr and stacktop in cstart.S Janosch Frank
2021-10-18 12:26 ` Janosch Frank [this message]
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 15/17] lib: s390x: Fix PSW constant Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 16/17] lib: s390x: snippet.h: Add a few constants that will make our life easier Janosch Frank
2021-10-18 12:26 ` [kvm-unit-tests GIT PULL 17/17] lib: s390x: Fix copyright message Janosch Frank
2021-10-18 15:31 ` [kvm-unit-tests GIT PULL 00/17] s390x update 2021-10-18 Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20211018122635.53614-15-frankja@linux.ibm.com \
    --to=frankja@linux.ibm.com \
    --cc=borntraeger@de.ibm.com \
    --cc=david@redhat.com \
    --cc=imbrenda@linux.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-s390@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=thuth@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).