From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-x72d.google.com (mail-qk1-x72d.google.com [IPv6:2607:f8b0:4864:20::72d]) by sourceware.org (Postfix) with ESMTPS id 02F0B386F80C for ; Mon, 11 May 2020 04:04:27 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org 02F0B386F80C Received: by mail-qk1-x72d.google.com with SMTP id g185so8487665qke.7 for ; Sun, 10 May 2020 21:04:27 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:references:from:autocrypt:subject:message-id :date:user-agent:mime-version:in-reply-to; bh=sBsxMiOFa4k/mHqtHW/qyCCEs7tHTehGuBZf18HcN7k=; b=o6Cyqm+J2mD5QHnhuuve2V/9uCmNiJzITFwT9g6IeaS7gt3XC6f0kMABwDa4DMEVMm oU9Pkn0lhwChT6dtl8CvGvHeLTybeIqDEjPet3c+rkE5sthnBGwPFGUJgJ1BUMwSttC0 xAL8hp+FNNhHUHrUyP7YKrZdGJC8b29YvizNmEZADYIGQ6+L7qQ+m2GUy4AzJa/Xg7gB 6Dft/zAFcLWQS630OmQuAGw9TIL7kY6UPSaOITYA1Dn+nABmQ1C5QUbKvfX0BzkI7sWQ ++GhUQ45loV0qsNIzqA5DVUWoWDuitlruPW2ZbbZjEZXNoSpFs1LW0PmgB7VudMOkIMi SSuQ== X-Gm-Message-State: AOAM532C7bgXN9BjGkaoJRrfE7r5hve56bt1/k8OaNCDrE7D1Z5H2KP5 rg3KSY6QbWyzRFIMuHUC1q3cGYFf X-Google-Smtp-Source: ABdhPJwGewRWlhMcvHH/wKlWzsID84ZSOvNPctFzniToUuU85ymRBma/cFCUmEJpx9+iMrY9Og/fXw== X-Received: by 2002:a37:6547:: with SMTP id z68mr410931qkb.197.1589169866331; Sun, 10 May 2020 21:04:26 -0700 (PDT) Received: from [192.168.1.233] (050-089-177-152.res.spectrum.com. [50.89.177.152]) by smtp.googlemail.com with ESMTPSA id h12sm4817967qtb.19.2020.05.10.21.04.25 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Sun, 10 May 2020 21:04:25 -0700 (PDT) To: newlib@sourceware.org References: <1eabaa19-fb43-e45d-1b16-12edcdf4aa3e@polymtl.ca> From: Orlando Arias Autocrypt: addr=orlandoarias@gmail.com; prefer-encrypt=mutual; keydata= mQGiBEdjh9ARBADvS6iwWeg4Ge5QEdivsrDye6VJDebt4g+U3NVo+7/CmCsTzeYBKa28X7Mg UJFrsHEGZgoZvZ6N69/ERwBuVkZ8Vi6GOYDhVjMnHzMV5+uFcegYzQpH5mekSsdd4NVGS8sz 1AsOxKpH/7dEDPYkqOaDnK7XZjW35D/KPsEevSOhCwCgvJQDiPZm1ygrI37GMqSqUbXcGjkD /2hH42NeYtZZbmPcEobe74FdxL6sqIbu0KHEK/khA9Y06/WqEoFPqVMexX1yY9p6thEl7+27 LQ2LYEiUCTTAX+liUBsm+lyhEhtlDjC2lsjgA7xqO6wiHMCKLRJbx2NzpxQb/5LNSOYlbnBp Fv62BsBo5w+EzUOrKtzu0M6gbCQsBACMI6wALPOBZhggg7IWY+I+r7BTkrE/Af09HIAB+rAd yi9MjFCizqnMlx6dXk84DyEJXOJYfZ71k54daiM+YBWd+JWdZ5qzGNqnrXFGkHB7H3EDXEKl W6BLhSHrprx65H9AhDdz+ITYSKNeHKxC/Bell6v2flvr6hfe2FlLyEVOWLQ8T3JsYW5kbyBB cmlhcyAoT3JsYW5kbydzIEdtYWlsIEtleSkgPG9ybGFuZG9hcmlhc0BnbWFpbC5jb20+iHsE ExECADsCGyMCHgECF4ACGQEWIQQNWDJzd34+k5noE3NTFb9QFn4uoQUCXqJlUwULCQgHAgYV CgkICwIEFgIDAQAKCRBTFb9QFn4uoQq/AJ9+CMy8nYDvucKU07oS/G4TQl2/yQCgtwmT1Pj3 sAIHgIc7gu3XubnuPIq5Ag0ER2OH0BAIAIbCj0xIR0ZioCc/TXd0FU/uic+FKMaO/XbmbliM JzgJ/d0kK+/x6oHDd1+rudjlv3hJQnn2q9wQPwfOHD6N0pU1nvddOVX40XbDDgUNyW1PbQea W3qoZCfEc6XQleYWSJ2QECV5DCihpsJY0QFL6gbVPrQhJprSggLsDOAJqd2nA+cuyesXVZd1 4Q6qTtO0y4AJsR4HqtkuuprsGY0sk/ZBldHOtJw9a/VB291tdFTtXCB0yV1+VjQjXzo8qw7r d9pEmBefMXz4B89qxSC8TrLV5V5aEX3X9wkXPYMQNETsadg0cqhU0CVgHoQ7hCePAhabv20H 4ggkByw0qgeLf88AAwUH/2xx4OwgjWpcCoFyGxdzxDjdVrYrEVLHmCz3e09+IaATOTOFFCEd rYb1KeLIYccK88VYSFyd0SfWIFR4vvAa9qrUxmOl/8TaU5Mq30NLvkPV3k7b20wZBewfenlW ti/caEXaFvEWeevWF4naJix7YouAQoKH8Om1vU6OTWsXZCFTI1yFAqSkbLu9C78xPa8TwNFh fL5Trn5lzCMaDP4uK2L2DPAz9ExOJDmHLlycJHPw50S4m6I/fYFmpHPnTdY8eRSrSZsCji2G Nl5t1WkyNHUEQ7v8kE81wlaVpYmzxOL9GYYngOZhvuCks+e3o1ZbLEdX2V3wQ4eMN7Kjiz+h LlaISQQYEQIACQUCR2OH0AIbDAAKCRBTFb9QFn4uoYiqAJ9JL/UL6Styb5BYbtsW/Nqy5Sfr vwCgpUiPm3gKcjaEq2PRRsRstBUMH08= Subject: Re: Stack pointer is 0 in a bare metal AArch64 program Message-ID: <439c535b-67be-4d8c-5d9f-9722310cdbdc@gmail.com> Date: Mon, 11 May 2020 00:04:45 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Thunderbird/68.7.0 MIME-Version: 1.0 In-Reply-To: <1eabaa19-fb43-e45d-1b16-12edcdf4aa3e@polymtl.ca> Content-Type: multipart/signed; micalg=pgp-sha512; protocol="application/pgp-signature"; boundary="vi8Gc1QY0grgQfB20UZbDd0wvxPRFIdtP" X-Spam-Status: No, score=0.2 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_BARRACUDACENTRAL, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=no autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: newlib@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Newlib mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 11 May 2020 04:04:28 -0000 This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --vi8Gc1QY0grgQfB20UZbDd0wvxPRFIdtP Content-Type: multipart/mixed; boundary="0yJv0e35VxDA7OWyLTxXMewCFXJGjMjlg"; protected-headers="v1" From: Orlando Arias To: newlib@sourceware.org Message-ID: <439c535b-67be-4d8c-5d9f-9722310cdbdc@gmail.com> Subject: Re: Stack pointer is 0 in a bare metal AArch64 program References: <1eabaa19-fb43-e45d-1b16-12edcdf4aa3e@polymtl.ca> In-Reply-To: <1eabaa19-fb43-e45d-1b16-12edcdf4aa3e@polymtl.ca> --0yJv0e35VxDA7OWyLTxXMewCFXJGjMjlg Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: quoted-printable Greetings, On 5/10/20 10:31 PM, Simon Marchi via Newlib wrote: > $ ./sim/aarch64/run --trace=3Don --trace-disasm=3Don ./sim/aarch64/a.ou= t > memory: ERROR: executable is too big: ffffffffffffffff > insn: pc =3D 400168 instr =3D 58000281 > disasm: ldr x1, 0x00000000004001b8 > memory: read of 0 (8 bytes) from 4001b8 > insn: pc =3D 40016c instr =3D 927cec20 > disasm: and x0, x1, #0xfffffffffffffff0 > insn: pc =3D 400170 instr =3D 9100001f > disasm: mov sp, x0 > insn: pc =3D 400174 instr =3D d280001d > disasm: mov x29, #0x0 // #0 > insn: pc =3D 400178 instr =3D a9bf77fd > disasm: stp x29, x29, [sp, #-16]! Within libgloss for Aarch64, the stack is initialized using a weak symbol with the value of 0: =2Emacro GEN_DWORD name #if defined(__ILP32__) && __BYTE_ORDER__ =3D=3D __ORDER_LITTLE_ENDIAN__ .word \name .word 0 #elif defined(__ILP32__) && __BYTE_ORDER__ =3D=3D __ORDER_BIG_ENDIAN__ .word 0 .word \name #else .dword \name #endif =2Eendm =2ELstack: GEN_DWORD __stack .weak __stack If the linker script you are utilizing does not define __stack, then the weak symbol is used. As an aside, this behavior in libgloss has always annoyed me. When working with Cortex-M cores [both ARMv7-M and ARMv8-M], msp is initialized using the value stored in address 0 of the memory map by the hardware. Yes, the application is free to change it afterwards, but it just seems redundant to me. Cheers, Orlando. --0yJv0e35VxDA7OWyLTxXMewCFXJGjMjlg-- --vi8Gc1QY0grgQfB20UZbDd0wvxPRFIdtP Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- iF0EAREKAB0WIQQNWDJzd34+k5noE3NTFb9QFn4uoQUCXrjO5QAKCRBTFb9QFn4u oZclAKCY4MueEZaqLVS13hLVXMoRgFs50gCfSDu7QhbLwLuys+u0KkrTqDkynPM= =Yocb -----END PGP SIGNATURE----- --vi8Gc1QY0grgQfB20UZbDd0wvxPRFIdtP--