From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 93864 invoked by alias); 9 Aug 2017 14:38:06 -0000 Mailing-List: contact newlib-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: newlib-owner@sourceware.org Received: (qmail 93447 invoked by uid 89); 9 Aug 2017 14:38:06 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-26.4 required=5.0 tests=BAYES_00,FREEMAIL_FROM,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=ham version=3.3.2 spammy=ARM_RDI_MONITOR, hlt, arm_rdi_monitor, H*RU:209.85.214.47 X-HELO: mail-it0-f47.google.com Received: from mail-it0-f47.google.com (HELO mail-it0-f47.google.com) (209.85.214.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 09 Aug 2017 14:38:04 +0000 Received: by mail-it0-f47.google.com with SMTP id 77so20511678itj.1 for ; Wed, 09 Aug 2017 07:38:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:subject:date:message-id; bh=vzLng2lYVTT8SxGYNqsf3V5Z8HD/XYf7qXh7zf0qPkA=; b=eMUN6LmW28XtG8nIhtCB0V+9RzCZMJb3g9NbqsNcc5C8yegm2mBzWYvYOxIFqgBCM3 OdWYT5UPeiEjjElWjRgzKS5mYfNKg+vpNSKv9MNt9tLTvxOS90SP9P3kKXdRDf0v/g6w Oyyb3P93Ud+b60sI23Ksp4WvzpHzirQnTpUOglIxa7SUb548fgpCrcRDMfmsI8eCOP9e BJog9RIIYwXlcUajPgO5GqxcuPsB6xJfJFJb4r0zuIfKjh+3/GFw8X8lsCBalz4khXE7 uknP77Og7Ozx47HvdeN+RBDAtjhLCxi8VTMDxa9azT98sJI3U0Ef9IwKU+Pv9Zys+0Yq n6xQ== X-Gm-Message-State: AIVw112xtEmj7Y8V5CdPCXm1MH5AWbmUCVOMydEh1WEv3sMb4hn+ngpV Flp67nbGw16Yompr X-Received: by 10.36.248.132 with SMTP id a126mr6822768ith.107.1502289482994; Wed, 09 Aug 2017 07:38:02 -0700 (PDT) Received: from E107787-LIN.cambridge.arm.com (static.42.136.251.148.clients.your-server.de. [148.251.136.42]) by smtp.gmail.com with ESMTPSA id n67sm2079538itg.39.2017.08.09.07.38.01 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 09 Aug 2017 07:38:02 -0700 (PDT) From: Yao Qi X-Google-Original-From: Yao Qi To: newlib@sourceware.org Subject: [PATCH] [AArch64] Don't fetch command line options without semi-hosting Date: Wed, 09 Aug 2017 14:38:00 -0000 Message-Id: <1502289477-12301-1-git-send-email-yao.qi@linaro.org> X-IsSubscribed: yes X-SW-Source: 2017/txt/msg00745.txt.bz2 Nowadays, the code fetching command line options via semi-hosting are unconditionally pulled in, so that the semi-hosting code is still there even I compile with option --specs=nosys.specs. gdb ./aarch64-none-elf/libgloss/aarch64/crt0.o (gdb) disassemble _start 0x0000000000000050 <+80>: ldr x1, 0x128 <_cpu_init_hook+48> 0x0000000000000054 <+84>: mov w0, #0x15 0x0000000000000058 <+88>: hlt #0xf000 This patch fixes this problem by wrapping the code by ARM_RDI_MONITOR. When semi-hosting is not used, set command line options to NULL. --- libgloss/aarch64/crt0.S | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libgloss/aarch64/crt0.S b/libgloss/aarch64/crt0.S index cbff11a..3bf0278 100644 --- a/libgloss/aarch64/crt0.S +++ b/libgloss/aarch64/crt0.S @@ -157,6 +157,7 @@ bl FUNCTION (_init) +#ifdef ARM_RDI_MONITOR /* Fetch and parse the command line. */ ldr x1, .Lcmdline /* Command line descriptor. */ mov w0, #AngelSVC_Reason_GetCmdLine @@ -219,6 +220,11 @@ and x4, x1, ~15 mov sp, x4 +#else + mov x0, #0 /* argc = 0 */ + mov x1, #0 /* argv = NULL */ +#endif + bl FUNCTION (main) b FUNCTION (exit) /* Cannot return. */ -- 1.9.1