From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mx0b-002e3701.pphosted.com (mx0b-002e3701.pphosted.com [148.163.143.35]) by mx.groups.io with SMTP id smtpd.web10.3598.1622172281490494771 for ; Thu, 27 May 2021 20:24:41 -0700 Authentication-Results: mx.groups.io; dkim=pass header.i=@hpe.com header.s=pps0720 header.b=Lmm3ee5b; spf=permerror, err=parse error for token &{10 18 %{ir}.%{v}.%{d}.spf.has.pphosted.com}: invalid domain name (domain: hpe.com, ip: 148.163.143.35, mailfrom: prvs=0782206e73=daniel.schaefer@hpe.com) Received: from pps.filterd (m0150245.ppops.net [127.0.0.1]) by mx0b-002e3701.pphosted.com (8.16.0.43/8.16.0.43) with SMTP id 14S3OKGV019890; Fri, 28 May 2021 03:24:31 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=hpe.com; h=subject : to : cc : references : from : message-id : date : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pps0720; bh=g998tvPbXH+YwF0AfDppvnI6j7aYJSEGTTmBcegH58Y=; b=Lmm3ee5bFz/DkRGbmvriTSmwZUbojsXZBtZjXnoI9L+CtJOxsF+SvZkIXxIvg5JaO5C1 ErC8+DPS3ARyrtCOA60zOp1QLZNbP5fkaXZaf12KPbAnZQUFBAWXfg0K7IOpbtqKuzJv 2k1BAfkdTidoZh0FEHaW5CB3+ttJY4sYC+z2it1PH0v8UYwVpcioPZXfFeI5Ka39UKR/ uIHLy3uJQZCfIo3y9JotDonRJ57AcehlmCOeHulbUzRSKUe2PjObR2/Gf3j7kXxrPk0h CdGjDsq1IqOd2dXrImbRS20OfIV6VIzrWUPQqa0DlirQBTNcOvKRlvM42fdk4ERhxwVY sA== Received: from g2t2354.austin.hpe.com (g2t2354.austin.hpe.com [15.233.44.27]) by mx0b-002e3701.pphosted.com with ESMTP id 38tqmv8cwb-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT); Fri, 28 May 2021 03:24:31 +0000 Received: from G9W8453.americas.hpqcorp.net (exchangepmrr1.us.hpecorp.net [16.216.160.211]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-SHA384 (256/256 bits)) (No client certificate requested) by g2t2354.austin.hpe.com (Postfix) with ESMTPS id 519E315A; Fri, 28 May 2021 03:24:30 +0000 (UTC) Received: from G1W8108.americas.hpqcorp.net (2002:10c1:483c::10c1:483c) by G9W8453.americas.hpqcorp.net (2002:10d8:a0d3::10d8:a0d3) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 28 May 2021 03:24:28 +0000 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (15.241.52.11) by G1W8108.americas.hpqcorp.net (16.193.72.60) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Fri, 28 May 2021 03:24:28 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=XB2dKLegCNdraY4Jcw31zXmLIHxOdCLk6Wxplwbxy++p914+FUizhZfV2aEoOMEYfMwOcg58cvoGDAtHTDe/wKIIQP6ltPJUTO+Xl0Muq+dLUEPRACRJK86+HUJtqU2L23Vl0Hf14IfJiF7WMA476FPN8W3gAJ6esDE3UjMbzzUaIhdeS+4XaO5q/8ICTbtl9EMhHMhhycnB530tFzZIBySJ+onwTptMwTER81tpl2d0WUXtMXYPTXaa7bJll/ECWvCqQ7ogvIzXZC6JtzGTxt/RZcrIqIrWKj3U2WG31qBoDPFMpfZzQMoiu7SWLCVwXcyRHuKXm3an18phHOQbiA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BGrhQ1IMqKKgjn9peQN4af7EEJ/DIpbbbx4HfcCb/vk=; b=NijCABjTL4AmnipYqYa3Grsk8SimmBEGfY3F0CeftYeIRVkXO5TcBXJoNvEZYWgNWbX5SRwWpSkU31xLeu1qM7VGD1CRQrlt0PlkN9hkfiUPo0hP2PCeg82XtsUgkDE6iBnmSar0LJHmi/lPLwhGsNW2qj1J1rkod76tsGbvqqCKqX0dFXlzE0TwmiLEbua3rCuXElN4YDR8FRMzgQ6cCzAx1KqaIKIYX8lIK2Hs7W1mopEDAAfSlDOw6dsn24lQG0gHFZhbWccMy2A4SfvHuKbgn29XW4F5G8JJxWCux0H+mqhf4tYTzDkoE2f7cteB0ao/TSJqftBo+RAl69/v4w== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=hpe.com; dmarc=pass action=none header.from=hpe.com; dkim=pass header.d=hpe.com; arc=none Authentication-Results: intel.com; dkim=none (message not signed) header.d=none;intel.com; dmarc=none action=none header.from=hpe.com; Received: from DF4PR8401MB0444.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:760d::23) by DF4PR8401MB0395.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:7612::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20; Fri, 28 May 2021 03:24:26 +0000 Received: from DF4PR8401MB0444.NAMPRD84.PROD.OUTLOOK.COM ([fe80::1055:761b:7ee6:52ca]) by DF4PR8401MB0444.NAMPRD84.PROD.OUTLOOK.COM ([fe80::1055:761b:7ee6:52ca%11]) with mapi id 15.20.4173.024; Fri, 28 May 2021 03:24:26 +0000 Subject: Re: [PATCH] Add support for RISCV GOT/PLT relocations To: Sunil V L , CC: , Abner Chang , Heinrich Schuchardt , Bob Feng , Liming Gao , Yuwei Chen References: <20210527144113.206426-1-sunilvl@ventanamicro.com> From: "Daniel Schaefer" Message-ID: <2523e9e3-3476-24b0-6ec9-1223f82f72ab@hpe.com> Date: Fri, 28 May 2021 11:24:14 +0800 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.10.1 In-Reply-To: <20210527144113.206426-1-sunilvl@ventanamicro.com> X-Originating-IP: [123.193.59.220] X-ClientProxiedBy: HK2PR02CA0128.apcprd02.prod.outlook.com (2603:1096:202:16::12) To DF4PR8401MB0444.NAMPRD84.PROD.OUTLOOK.COM (2a01:111:e400:760d::23) X-MS-Exchange-MessageSentRepresentingType: 1 Received: from [192.168.0.25] (123.193.59.220) by HK2PR02CA0128.apcprd02.prod.outlook.com (2603:1096:202:16::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4173.20 via Frontend Transport; Fri, 28 May 2021 03:24:23 +0000 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 72fe8860-d7d6-463b-b50c-08d9218818b7 X-MS-TrafficTypeDiagnostic: DF4PR8401MB0395: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:268; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: cMrkqWGG2Q4m2QIE0D1pPPOXe/UeajsHwM7IehFqhCqwPY2F4b9u5oRMFz47aMMeHc+TvvbWk25r8Ni55/vNxdLYSQEVy9Ib9sm9NeMxEepbDw1tCMBLsvgvzt9FUZ2UPqMzowQyIU10zcv2d6SsYiZMVWrZM63NTGjIgqiQqTLa7TCEtXJ6FMP1MQ0n8Q7eLY/gFfkdesNLseOkbFRQVt68F35zLbjr6tzqLwEZX0HagfmR7E1hzbJyRz/A4erSFV5B+trUqWy48rJiTA/YVLhUjuEiRr9t3XAdQPXJUHczg3qPOx91SUStm6cHVVNWiBgJfOoT09R3kAnNeAgGvXX9icux5Yu68f8NXjWXhqECXKG2d+yMoVKdB9U0adZwvcrb0pzsH+UkEFcBQBYjyrgkp9On0NKeNG3GiuZjeaNYQoA6jIIA+RsYLsECTR7ttFhgNjC05HDXlytZzi6xfXmPqWJiXW6jsjK9mHkgFC1+Sbd+vPTMmOWoMGRfIQJ2X0aR7dB4yGaSWVhcczf6sny46UH0FIHoYo3sysWGxBSFoVgABHuXIZkDlfz0Vkr5qmk7e1F0IH/TJnG+ilsR5Mao3W8NLsq8fFJj8F9iE0GBsHVvJXKbTJMt7jhYDLZBYAXbfu6t1c5T/xvfCsqGM/hrWNbjnbtSREfebF8xQzets8TmNQHtIbcJG6Z7i6qlH0ySTNXWgDIY6oMNHFYAoO0hSeB7DXE+1/HPLtNHnqtbIpZ70NWEG01QP3V10Zmq9BfxoCpHAGoJybZ+2UpWyoJvL+mPogWWoiAIlGbVGwm5NhQrEr1myrHczTSZoZqk X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DF4PR8401MB0444.NAMPRD84.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(366004)(39860400002)(346002)(376002)(396003)(136003)(53546011)(26005)(16576012)(8936002)(4326008)(316002)(66556008)(31696002)(478600001)(6666004)(8676002)(38100700002)(966005)(956004)(86362001)(2616005)(6486002)(83380400001)(31686004)(5660300002)(186003)(66946007)(16526019)(2906002)(66476007)(19627235002)(44832011)(54906003)(36756003)(45980500001)(43740500002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData: =?utf-8?B?emRMSFZiRVd4bHRKQlNwNHZKdFpCcklrM0lZQmlycGJYRUtybFR3cGV6MTcr?= =?utf-8?B?QWdaYnRCaUFLY2VUeWZUdGNYTHZvQXdPejROZ1ZIOHhBUzRTY2lyV25nVndD?= =?utf-8?B?a2RzdVZ4S3NkRjAvNVNBTWtaL2ZLT0wyeU1NbUM3cTJSQ2x5OVliZ3dCd3Y2?= =?utf-8?B?THRuSkYxTVBkdjdtRVBJZnBnYnQ4VG1wUzdsd0ZFZmwyQStqVVpLWCsyazZ5?= =?utf-8?B?bng5a3ByNS83Wk45SFRVcGNKZ09IWEtxbHN0eGMvYVFXUnJSYmYrRURINkFq?= =?utf-8?B?enMrYWp2bjIzd3dvbnZFUDE3MHd5ZmJYQ0ZncEZEck9KdTRXNjlVNkdrRDRn?= =?utf-8?B?NHVBOW8zbDZOWUN6MWZRUklva3VsY21FZHNRdDlqUGFNTzVIbzhwaXNTVENk?= =?utf-8?B?ZE9BV3RKanVRNURxWm1KcXp5SUlYaDVwaWcwTkQrczdQTjZHQzdDSlBLV1Nv?= =?utf-8?B?ZkhGUXljeUh3ekhwWVFGb042KzJlVHRMVlRoalhYNmNMZ3FJd1NLdlV4MWRX?= =?utf-8?B?eFV6ZklBbVJWWE43cGhjaGdLMGlQa1ZiTkl6cmxySlZmTjMvVkJRNUpLVkQw?= =?utf-8?B?eFFFbjVib2JHbklpYlUvdFdxMU9xYmZ3M0lkWS9zeGdoUmhFT2JuakR0TzNm?= =?utf-8?B?YlUrdm5OK0lmMUlKVUM3a3VPSndzMm9IRXZEcmx3ZUZNUkh5NDNYb2hzZWxR?= =?utf-8?B?U080Z21vRGYyUTJRaTZ2Um5kQnVPWndyY1I5VktoU2FESExtczUxbjlnWm5u?= =?utf-8?B?akJ5a29uekprMUVrbDFkWXdpQ2JJR1NmTzRVZHJBeFNjbHJqbUZJejh2UmtU?= =?utf-8?B?ZHM0RVBEQWdRMjNSaDdra3ZvZ0srOXNKRkZ5QkltZjh1K25zbkVZL3FvTzBY?= =?utf-8?B?Rndyc09lZCs3S0s4TmdFU2c0ZmJ1VFk2S0x2R3g4cXBTWGR5R1RCR2plL2pw?= =?utf-8?B?TzZpRldPU1BTUHRTYTZDU05SWjVIZkJtWm9kcjk1SGw5UFF6UFJrdTFIS2Vl?= =?utf-8?B?WFJUTEtMaDlnbTFYRFB1cCtqUVJiTEUwWmVYelpXWHZsWUJqV1ozdUdEZ1Yw?= =?utf-8?B?OGV3OHB3T0pmZ1ljVDhKUE1iQlFiaUEvWGNmbi81cUpOWkFMZHQ4bjBGeEJp?= =?utf-8?B?amNzbkhCMVZxbXhyV0xxQjlqOFBZNXhsS2orQjM3dHV1UWpZMkhhcHhrTVh0?= =?utf-8?B?T3RMMktOUkZqWjdiNU9DM2ZtT1k0MXRCcC9YcytiOW1Gcnp2VURUTElVdG1r?= =?utf-8?B?bFhPVVpQTWRpNTliWnBidlNoaElDcDhSZGZQd1krQjhLYXBxNzRkd0YvNUdm?= =?utf-8?B?OXVtOGc3cjNOaWphd1g3NG9kd3NXdlp0OTIrbHZ4Qy85YmszTzVzd3Z5elRJ?= =?utf-8?B?bDNHYTFIUHYrT0sraDhJZkluLzh6YXZhMVlOOGthRmNnejl4OUNLcWtFU28x?= =?utf-8?B?N3BLb0duVUFsL0hNZGduR2FSVU9oWkhTMmx6RWhVSEtwUWw0akk4Rmd0RVRE?= =?utf-8?B?N1UwMWkzaWpvajE0Ui95cFBVQUlhWEliR1NpbklwbklPZ1A2empwMHhpbVdm?= =?utf-8?B?L1pxVmZQalRFSC9hZWlHZmdaeWx3T1Ayek5MNnREVlZ2bU9BNnMxNSs5Rjl0?= =?utf-8?B?cVhwQzZvcEtvUlg0SkV4L3oyemZuQ0xCK2tQdlc1T3owTkEzNElpY0pFMFhz?= =?utf-8?B?WFZneDI4U0wwa29QaTlWWTdMUWRwV0Fta29BU1NpZGhuZ28xa052T3dGTTd2?= =?utf-8?Q?72hkzJhmW706+UcxzVYF7r1u5vjegT6DT2YEJI4?= X-MS-Exchange-CrossTenant-Network-Message-Id: 72fe8860-d7d6-463b-b50c-08d9218818b7 X-MS-Exchange-CrossTenant-AuthSource: DF4PR8401MB0444.NAMPRD84.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 May 2021 03:24:26.5656 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 105b2061-b669-4b31-92ac-24d304d195dc X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: IPkhIfr0YQR3c+WyKCuGLW38AT83uOcGo4+Cx72uw2TNeucmRLYisMyLmFtbnzTyDnHH25yndHsn8wpi0D4TKg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DF4PR8401MB0395 X-OriginatorOrg: hpe.com X-Proofpoint-ORIG-GUID: yJvn7Obq5Uhp6jGG26RBDN6XDr18YEhB X-Proofpoint-GUID: yJvn7Obq5Uhp6jGG26RBDN6XDr18YEhB X-Proofpoint-UnRewURL: 1 URL was un-rewritten MIME-Version: 1.0 X-HPE-SCL: -1 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.391,18.0.761 definitions=2021-05-28_02:2021-05-27,2021-05-28 signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 adultscore=0 phishscore=0 mlxlogscore=999 malwarescore=0 bulkscore=0 spamscore=0 impostorscore=0 suspectscore=0 clxscore=1011 mlxscore=0 lowpriorityscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2104190000 definitions=main-2105280019 Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 7bit +Maintainers and Reviewers of BaseTools See my reply below. On 5/27/21 10:41 PM, Sunil V L wrote: > Ref: https://bugzilla.tianocore.org/show_bug.cgi?id=3096 > > This patch adds support for R_RISCV_CALL_PLT and R_RISCV_GOT_HI20 > relocations. > > Signed-off-by: Sunil V L > Cc: Abner Chang > Cc: Daniel Schaefer > Cc: Heinrich Schuchardt > --- > BaseTools/Source/C/GenFw/Elf64Convert.c | 45 +++++++++++++++++++++---- > 1 file changed, 39 insertions(+), 6 deletions(-) > > diff --git a/BaseTools/Source/C/GenFw/Elf64Convert.c b/BaseTools/Source/C/GenFw/Elf64Convert.c > index d097db8632..d05dcf9992 100644 > --- a/BaseTools/Source/C/GenFw/Elf64Convert.c > +++ b/BaseTools/Source/C/GenFw/Elf64Convert.c > @@ -129,6 +129,8 @@ STATIC UINT32 mDebugOffset; > STATIC UINT8 *mRiscVPass1Targ = NULL; > STATIC Elf_Shdr *mRiscVPass1Sym = NULL; > STATIC Elf64_Half mRiscVPass1SymSecIndex = 0; > +STATIC INT32 mRiscVPass1Offset; > +STATIC INT32 mRiscVPass1GotFixup; > > // > // Initialization Function > @@ -479,11 +481,11 @@ WriteSectionRiscV64 ( > break; > > case R_RISCV_32: > - *(UINT32 *)Targ = (UINT32)((UINT64)(*(UINT32 *)Targ) - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx]); > + *(UINT64 *)Targ = Sym->st_value + Rel->r_addend; > break; > > case R_RISCV_64: > - *(UINT64 *)Targ = *(UINT64 *)Targ - SymShdr->sh_addr + mCoffSectionsOffset[Sym->st_shndx]; > + *(UINT64 *)Targ = Sym->st_value + Rel->r_addend; > break; > > case R_RISCV_HI20: > @@ -533,6 +535,18 @@ WriteSectionRiscV64 ( > mRiscVPass1SymSecIndex = 0; > break; > > + case R_RISCV_GOT_HI20: > + Value = (Sym->st_value - Rel->r_offset); > + mRiscVPass1Offset = RV_X(Value, 0, 12); > + Value = RV_X(Value, 12, 20); > + *(UINT32 *)Targ = (Value << 12) | (RV_X(*(UINT32*)Targ, 0, 12)); > + > + mRiscVPass1Targ = Targ; > + mRiscVPass1Sym = SymShdr; > + mRiscVPass1SymSecIndex = Sym->st_shndx; > + mRiscVPass1GotFixup = 1; > + break; > + > case R_RISCV_PCREL_HI20: > mRiscVPass1Targ = Targ; > mRiscVPass1Sym = SymShdr; > @@ -545,11 +559,17 @@ WriteSectionRiscV64 ( > if (mRiscVPass1Targ != NULL && mRiscVPass1Sym != NULL && mRiscVPass1SymSecIndex != 0) { > int i; > Value2 = (UINT32)(RV_X(*(UINT32 *)mRiscVPass1Targ, 12, 20)); > - Value = (UINT32)(RV_X(*(UINT32 *)Targ, 20, 12)); > - if(Value & (RISCV_IMM_REACH/2)) { > - Value |= ~(RISCV_IMM_REACH-1); > + > + if(mRiscVPass1GotFixup) { > + Value = (UINT32)(mRiscVPass1Offset); > + } else { > + Value = (UINT32)(RV_X(*(UINT32 *)Targ, 20, 12)); > + if(Value & (RISCV_IMM_REACH/2)) { > + Value |= ~(RISCV_IMM_REACH-1); > + } > } > Value = Value - (UINT32)mRiscVPass1Sym->sh_addr + mCoffSectionsOffset[mRiscVPass1SymSecIndex]; > + > if(-2048 > (INT32)Value) { > i = (((INT32)Value * -1) / 4096); > Value2 -= i; > @@ -569,12 +589,22 @@ WriteSectionRiscV64 ( > } > } > > - *(UINT32 *)Targ = (RV_X(Value, 0, 12) << 20) | (RV_X(*(UINT32*)Targ, 0, 20)); > + if(mRiscVPass1GotFixup) { > + *(UINT32 *)Targ = (RV_X((UINT32)Value, 0, 12) << 20) > + | (RV_X(*(UINT32*)Targ, 0, 20)); > + /* Convert LD instruction to ADDI */ > + *(UINT32 *)Targ = ((*(UINT32 *)Targ & ~0x707f) | 0x13); > + } > + else { else should be on the line before, like } else { > + *(UINT32 *)Targ = (RV_X(Value, 0, 12) << 20) | (RV_X(*(UINT32*)Targ, 0, 20)); > + } > *(UINT32 *)mRiscVPass1Targ = (RV_X(Value2, 0, 20)<<12) | (RV_X(*(UINT32 *)mRiscVPass1Targ, 0, 12)); > } > mRiscVPass1Sym = NULL; > mRiscVPass1Targ = NULL; > mRiscVPass1SymSecIndex = 0; > + mRiscVPass1Offset = 0; > + mRiscVPass1GotFixup = 0; > break; > > case R_RISCV_ADD64: > @@ -586,6 +616,7 @@ WriteSectionRiscV64 ( > case R_RISCV_GPREL_I: > case R_RISCV_GPREL_S: > case R_RISCV_CALL: > + case R_RISCV_CALL_PLT: > case R_RISCV_RVC_BRANCH: > case R_RISCV_RVC_JUMP: > case R_RISCV_RELAX: > @@ -1528,6 +1559,7 @@ WriteRelocations64 ( > case R_RISCV_GPREL_I: > case R_RISCV_GPREL_S: > case R_RISCV_CALL: > + case R_RISCV_CALL_PLT: > case R_RISCV_RVC_BRANCH: > case R_RISCV_RVC_JUMP: > case R_RISCV_RELAX: > @@ -1537,6 +1569,7 @@ WriteRelocations64 ( > case R_RISCV_SET16: > case R_RISCV_SET32: > case R_RISCV_PCREL_HI20: > + case R_RISCV_GOT_HI20: > case R_RISCV_PCREL_LO12_I: > break; > > Just one minor nit-pick on the formatting. Well in my email program the indentation is off, it looks fine on GitHub though. Probably an issue with the displaying on my end. https://github.com/vlsunil/riscv-edk2/commit/a742fab0d73ab568aa2d2578a5ccfc400ffd2fa5 Reviewed-by: Daniel Schaefer Tested with GCC 8.3.0 on Debian Buster. Can boot -machine sifive_u to UEFI Shell and -machine virt on QEMU to Linux shell. Sunil tested to compile on GCC 10.2.0 on Debian Buster - don't know if he booted.