From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11olkn2041.outbound.protection.outlook.com [40.92.19.41]) by sourceware.org (Postfix) with ESMTPS id 371CF3858D28 for ; Fri, 17 Nov 2023 08:11:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 371CF3858D28 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=maskray.me Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=maskray.me ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 371CF3858D28 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.92.19.41 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700208666; cv=pass; b=nhHm7dFyLh3cupwHVIJ6gEl9fj7jfX7WdwgXuWlAvjMemkiEbnwRDebroIrGchkQud6H+3U8TWPHD8NfIMx98aTgmbc7wce2endaToRWkmbpbHHfnxmpAmcE2ZyN3Lni1ZcKpsA5UL2/w7KkDIV1DDMXOl5AIUdU78jBIrNk6R0= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1700208666; c=relaxed/simple; bh=fqUDRxaDeL4m9nrViFSOiKJmHEDOuQzS6t3rRUGIRfs=; h=From:Date:Message-ID:Subject:To:MIME-Version; b=Bwlfu5CQKT/RQZSTUYk1LwFsS5ONmUQc0WwSK+DeR9k5olM2/aKDtSGpIK2iNuVAuu8e3fBWg0tyAjiflrJYnbc6Y8mdfRif05CdjylRUF5AbhylpUL+RjuXw9/XiYDbyJ2HV4tfsK5fov4F/n5j15+LB/RQNFpuv3J5xqLvXkc= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=nl5eXPX6i9A/qkuuX5gxYP9kEg0MvkPMJm/+vY+sFOZlh4EEVpoZU0vVy9FKlc7AB3jVaqc3loRDMTECzquSQXhFXw7PK9HElS9s4kLrTKlDNj84SzZC9iWGXCSWuYkqpGnGG2OBYSE00sXbgfztcOZjYtXSb1qXv9XDI7mPBsVTMWzZfcxwfTHwViWl5Z1GHpQjWzwR2P58w+iMyNaNKaUVaXHNRKv1TON1sBG/WBqefhsLQq87U+FuHNflqrNhY689e64gDD2Zrt3unNllUiL/VN21MudNbg+1SuagfvzJXXpZ25NbOFdIezlwUJ5WjTzJMJ7vpizIamGXfW3RwQ== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=Kxomnx+ZvHLSkFUnLzWmDyU3ulzQW8EYsErSbgInFkg=; b=WOaxDxJqrBYVmAg/YRAmIdCf+yy0btXA6RGjtjwnPksgVj5wqPMK9kRwNgqkdJV9geW/Elko7FgJvzi1ZkjnqNH00IT9voWTa4gk/T4CTgbwC26/s81NyqJv11XbSpuV6/Gd59MtTMarGVNX0ue63ZcFPKvm0bHJBxXM/qKeNVhvNnmqESnR4R9R9iPQYUhvPkCNO3uuJ0Z+F+N4zji2xSshHAVkpQPwHYSJDVJ8CXsJTn/O/H9mJbIZj4PsZuRi4AMUib0ryX/JcoquBB3A2j8wbTebeF0RA60sM67S/jFNCg3ULfgCrDbNh2CDeVLfmvy1rEtDSPV6iicAGiAx+g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=none; dmarc=none; dkim=none; arc=none Received: from DS7PR12MB5765.namprd12.prod.outlook.com (2603:10b6:8:74::19) by PH8PR12MB7349.namprd12.prod.outlook.com (2603:10b6:510:217::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7002.21; Fri, 17 Nov 2023 08:11:03 +0000 Received: from DS7PR12MB5765.namprd12.prod.outlook.com ([fe80::2493:49ba:b06b:fa80]) by DS7PR12MB5765.namprd12.prod.outlook.com ([fe80::2493:49ba:b06b:fa80%6]) with mapi id 15.20.7002.022; Fri, 17 Nov 2023 08:11:03 +0000 X-Gm-Message-State: AOJu0YxljBvRgZt1Fp/l4TfbvaCR9C15+/a2oEUHKF+N/g4oCFuLyHgU zrwUoFztCh4wBipxHf2a+gBuWC3qL0h9ssVfiBM= X-Google-Smtp-Source: AGHT+IGKWxOBNBlb+d5CRVO1e5fx7F6aWdHbphY5KgjzIuU7lDcoLGZu6l1u3lZmrKHiC9N2yF7Dzg7Bnovf3TLu3sA= X-Received: by 2002:a05:6122:10d6:b0:48f:8533:3cda with SMTP id l22-20020a05612210d600b0048f85333cdamr17848423vko.11.1700208344165; Fri, 17 Nov 2023 00:05:44 -0800 (PST) References: In-Reply-To: From: Fangrui Song Date: Fri, 17 Nov 2023 00:05:33 -0800 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Appending program headers to existing ELFs? To: Matheus Afonso Martins Moreira Cc: binutils@sourceware.org, Nick Clifton Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-TMN: [k6QDYIeGoM8KmuIQED2T3NbTUXyZk3dW] X-ClientProxiedBy: MN2PR01CA0057.prod.exchangelabs.com (2603:10b6:208:23f::26) To DS7PR12MB5765.namprd12.prod.outlook.com (2603:10b6:8:74::19) X-Microsoft-Original-Message-ID: MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DS7PR12MB5765:EE_|PH8PR12MB7349:EE_ X-MS-Office365-Filtering-Correlation-Id: 8126ac87-bbaf-4d4c-f4f6-08dbe744bd8b X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 1tkM+nctIg+/Mq++phmEkaET0JpB5qrkfzp9GilcUOL6+knZrU2KG81G72KBZvuq5p3beFBM65h/4r4vqXleyR+jz04MpEfcWB+ag6qyh17vQ/xa9NkBFjJIrAVJnDd3ijEDkDw0YJ1OrtaQEiGKPL+fYR9TM4/H6UH4RsFv5+6v0iy5RkAsIq3heU8VHNZ6B/GQU52mRBZFPZkO+4B2tsSbU0K/DvpuocxePTKvRQXvJilQ0DJPCv9/s2ru6gTONZtFQU3sZJHn/w4yHQtc6GDev9Pt6l/+r6q55GzEvU83KCOScZMDD+UQs5CmAi+fZ5JX0wbHqGKiewvhPmw0LBIE1YiN6kAibhRQ1poS2zzKpUahZE7+igsL4at48pv2djKr6nzG62e3ATjl1VdhK5cPSzXlboNz2JNtKrbYxlrdvtzhGtNM59enHYEPZWD9QhUMK5A+grz7QW97Mcw3y4L/txCgjm7hOP0QB7P28E+hmAKAQiR20dqIhTaov4u1+5h480VL748+noQyU4EaWdX0CXZc2zvd7RsFver9kpM/s7tOMlNFgy0DUqC3+edb X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QWVnOFg2eU96OW5jNU9xZWR6TXNmamN0VFBDZkR0VE45bDJmS3JxUE5qOXVO?= =?utf-8?B?UVZlL1ZpaC94SG4xNVZDaDFoZ2l6MS9qUTZDM09GZTNwTzVtd3hRTyt0dmhX?= =?utf-8?B?UWJvSFdrbUtsUmJ3Mk9QM3dCSE5CTFBza0dwVnpQRGRJb1NsZVRNN1pJbFV1?= =?utf-8?B?dVlGbGNLaU9MQXdWVURHeDRTZ3JvajBwVFJqaFhBMnY4cUdqYUxNaXFONk84?= =?utf-8?B?OWxNZEdkc2phVGNSRkxocGF2d3N2alF4akVMQldLSHkxNWNkNjlMdnovcTll?= =?utf-8?B?Zm4wVzk0dlZuTHNxWStRV29tQmJHbHM4VExocVJ1VjgwV2I4WkRUcFM3S1dM?= =?utf-8?B?VEttZWJNV3pId0MxanFFQW90NnU0RDY0aGJOK2pCTzV3T2VTKzZBanZKWDU4?= =?utf-8?B?ZVNNNDJoRGJVOHh2SXprTmhMb1Fhai8vK1g3dytyVnNXUFdraGZlb3VqaHFv?= =?utf-8?B?QlA4eTZGdER5bU83T2x1VndvSXlwQURQOExkSXhSeFpQT3J4bFFwc3JoWVlm?= =?utf-8?B?M1A2VzNzUkI3dXc5K3gzWmtiemVGTjVZQkxJVi9NNWZLZVNDUlJ3ampJOC9V?= =?utf-8?B?SVY3K0V3UlVvdGN1alFZNUJGL292T1BHd2p1VTIwR0dIeHExZVFtUlJUVEV0?= =?utf-8?B?Q05LdXJLcDErMlRIU21ha080Ym5BaUp6RVRVaXVWMDIvUERZdERnUnFzcENL?= =?utf-8?B?M2lGRFozVmYvVVZtdW5pMDdyZHZPWHROcFRRMUxjYXBMZ2pzcW1DZm9uL1RZ?= =?utf-8?B?QjI4Q1RjcGdTbDZOZm11a1dOQTYwWU0wWklVVzVhaFQ5djRySlhZYmNyVzNL?= =?utf-8?B?d0U3bFIyc0dibVB6NlFFL1NDNHc1K3hxNEFXeDhKZ3J3bWpoT0F2aHNHczVS?= =?utf-8?B?RWFXV081UzNheXh3clpHVlh0anZyRlNjdG5wTUoxZDdaRWVDL1M5RjF5aERo?= =?utf-8?B?ckh5K2d5U2E2S3BEWUZSeEVHYnNERGFDUlhqRmQ4eFliZlVVL1VmRldNem1Z?= =?utf-8?B?ZjkvM28ySlYxRUpSS2hDMTM5MkhRYW9EL3RTMTB6M0NYRWhwT0ZSZC80SlNv?= =?utf-8?B?ODdQZGFhM21oMjZ5ZUo3K2NqeTE4SVNQZzlrd2pzNy9NSkNJRkFjYlRHKzhX?= =?utf-8?B?cE4yaDU0czZYTENGSmV2YzZzcCt4ZEFhR083WFpab0gyVkZZL2lQd1RoUCtS?= =?utf-8?B?Zmw1dW0zbVhoSkJBRGRscERZWGVIRG5oTFZ4UnBLMzM3NmU5aDlzOEYzc0lz?= =?utf-8?B?MUJPWGdzTm5wcWdYUEFDUTB3VVlyM3N0aklhZzZNTlMrZTNsMitKMHVQYm9y?= =?utf-8?B?T2lRUEVZTDMvMmxGM2lSZ1BEYWFYOC94bWFCNUpDYk5aNHdValpCNUdjc21U?= =?utf-8?B?MFZKQmhXWWtRWWdiZlFqV1RBQWxjbW82N2REbkZYVS81Kzg3OVRaNGJkVjJM?= =?utf-8?B?b1VaeFM4ZU13TlRBek5qcHRORkRaSDZLVTZNaDg2a2ROc21tR1ZwYllaTTFB?= =?utf-8?B?RWRZb2cyRW54TVBtMndveXlFT1liVnZUNENvVWlYbUp1TElhWjhPLzJtN29j?= =?utf-8?Q?7SSMV7mqMXzeUkCchNGXe3FK8aA7MCIZoZXngyEj8eYGJW?= X-OriginatorOrg: sct-15-20-4755-11-msonline-outlook-5183d.templateTenant X-MS-Exchange-CrossTenant-Network-Message-Id: 8126ac87-bbaf-4d4c-f4f6-08dbe744bd8b X-MS-Exchange-CrossTenant-AuthSource: DS7PR12MB5765.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Nov 2023 08:11:03.0243 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa X-MS-Exchange-CrossTenant-RMS-PersistedConsumerOrg: 00000000-0000-0000-0000-000000000000 X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR12MB7349 X-Spam-Status: No, score=-2.7 required=5.0 tests=BAYES_00,KAM_DMARC_STATUS,KAM_INFOUSMEBIZ,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: I think "error: could not allocate headers" means that you need to set the location counter to an appropriate address. In the internal linker script, it's something like . =3D SEGMENT_START("text-segment", 0) + SIZEOF_HEADERS; For your original feature request, I wonder whether it should be the responsibility of the post-link tool. For example, patchelf supports adding a new program header. This is done by appending the program headers to the end of the object file, then changing e_phoff in the ELF header. The original program headers immediately after the ELF header (added by the linker) are then unused, but that is a small amount of waste. On Thu, Nov 16, 2023 at 12:51=E2=80=AFAM Nick Clifton wr= ote: > > Hi Matheus, > > > In concrete terms: > > > > I'm building a small programming language interpreter > > and would like to add support for embedding programs > > into the executable. My intention is to treat the > > embedded programs section as an additional load path > > for libraries and modules as well as the main function. > > Couldn't your interpreter be a library (shared or static) > and then all that a programmer would need to do is to > include your library along with their code when they perform > a link of their own ? > > Cheers > Nick > >