From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2051.outbound.protection.outlook.com [40.107.21.51]) by sourceware.org (Postfix) with ESMTPS id 1C1763858D33 for ; Fri, 31 Mar 2023 12:20:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1C1763858D33 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=arm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=arm.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e3M/TEEEU5Qkgscl5Z7KpruE2vZV0SBy1iFOLFKK4nI=; b=c3i1KkrA9EAv83Iitlgmxn56+99LuG5alCaOC0eEv1MPkErsdJW6dQFOD+WIew7GpNsOlFb3FNm1tMzhoTRqidte8rO+exJM2HB5z6x/hTt9GuzxZAzprskkXLC/OgWW9582sHYPwTQvRXYtDaLEl9Pce77evkeihzQBdRQKaZ0= Received: from DB6PR0501CA0028.eurprd05.prod.outlook.com (2603:10a6:4:67::14) by AS8PR08MB6517.eurprd08.prod.outlook.com (2603:10a6:20b:31b::8) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6254.23; Fri, 31 Mar 2023 12:20:36 +0000 Received: from DBAEUR03FT025.eop-EUR03.prod.protection.outlook.com (2603:10a6:4:67:cafe::3d) by DB6PR0501CA0028.outlook.office365.com (2603:10a6:4:67::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6178.43 via Frontend Transport; Fri, 31 Mar 2023 12:20:36 +0000 X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=pass action=none header.from=arm.com; Received-SPF: Pass (protection.outlook.com: domain of arm.com designates 63.35.35.123 as permitted sender) receiver=protection.outlook.com; client-ip=63.35.35.123; helo=64aa7808-outbound-1.mta.getcheckrecipient.com; pr=C Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by DBAEUR03FT025.mail.protection.outlook.com (100.127.142.226) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.22 via Frontend Transport; Fri, 31 Mar 2023 12:20:36 +0000 Received: ("Tessian outbound 5154e9d36775:v136"); Fri, 31 Mar 2023 12:20:36 +0000 X-CheckRecipientChecked: true X-CR-MTA-CID: 0aa53ae60a5987d6 X-CR-MTA-TID: 64aa7808 Received: from 64466595d729.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 2AC7969F-A708-49C4-844B-D3C03390649D.1; Fri, 31 Mar 2023 12:20:29 +0000 Received: from EUR02-VI1-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 64466595d729.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 31 Mar 2023 12:20:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KNGPgpI81jAFB1msgFuyz7+CrpDNMEulb2MwnkfQ/swxcK/48//60yzagauvJoii43jomhZ80pc4UbDu3lwiszZwUpHucery1HQW6qZUkk9fcLAQ80V3bXqVC1ZgHDKFQtt5TI+ygVRLJwMSFtjVuI4r3YTI7eWziexDo6FnC2JZrZsW1Ck4Glj7NOAURhQ7WhXEArjwKEx0s/rZGXxBMt5R0ELWE01H/nJqKKPw2+/zisex96mfz04eCAYZ35an5h6xsV7dBiv99mVJJiqpfLlxPYDiiHhRaK+a/dx6QdajPfyLdD9mzVmq6nE+P5jGm2qcjbDjWX5qj8dE37ZKQw== 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=e3M/TEEEU5Qkgscl5Z7KpruE2vZV0SBy1iFOLFKK4nI=; b=az0al1xZIie5J/A+Bity7yU4mCSz2sA4iFigga7qJZ6JUIl4/zUqTFwE5ENKmeVREJM8PDi6laOFCKoAYSYUdJQRNzPjeDWFROQ8Lc9zXHX8d6/hvNm7oKB9gtqSYKwdYs/sq2kcSIB+WRqqKJ6zblF+Qz5brD25O6frcP4vsN1ttrASJxn9QPjx3RfVYQ9uJoYfojQUiaxrvqGj//DxrjDtCWTW320plorlTn5CThpgi4Dze0Ek58MJFidVUnedMv8SJJ5kUlKlBTOqx/Kx3Oi/YKf/bDJ1ZowkrDNIdpf5rhzk3WsmrTiflCMV1qhHToRFi7ovGJoiq+zKVBOu9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e3M/TEEEU5Qkgscl5Z7KpruE2vZV0SBy1iFOLFKK4nI=; b=c3i1KkrA9EAv83Iitlgmxn56+99LuG5alCaOC0eEv1MPkErsdJW6dQFOD+WIew7GpNsOlFb3FNm1tMzhoTRqidte8rO+exJM2HB5z6x/hTt9GuzxZAzprskkXLC/OgWW9582sHYPwTQvRXYtDaLEl9Pce77evkeihzQBdRQKaZ0= Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; Received: from DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) by AS8PR08MB8972.eurprd08.prod.outlook.com (2603:10a6:20b:5b1::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6222.34; Fri, 31 Mar 2023 12:20:27 +0000 Received: from DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::e3d1:5a4:db0c:43cc]) by DB9PR08MB7179.eurprd08.prod.outlook.com ([fe80::e3d1:5a4:db0c:43cc%3]) with mapi id 15.20.6254.023; Fri, 31 Mar 2023 12:20:27 +0000 Date: Fri, 31 Mar 2023 13:20:08 +0100 From: Szabolcs Nagy To: stsp , Adhemerval Zanella Netto , libc-alpha@sourceware.org, janderson@rice.edu, Carlos O'Donell , Rich Felker Subject: Re: [PATCH v9 0/13] implement dlmem() function Message-ID: References: <20230318165110.3672749-1-stsp2@yandex.ru> Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: X-ClientProxiedBy: SN7PR04CA0037.namprd04.prod.outlook.com (2603:10b6:806:120::12) To DB9PR08MB7179.eurprd08.prod.outlook.com (2603:10a6:10:2cc::19) MIME-Version: 1.0 X-MS-TrafficTypeDiagnostic: DB9PR08MB7179:EE_|AS8PR08MB8972:EE_|DBAEUR03FT025:EE_|AS8PR08MB6517:EE_ X-MS-Office365-Filtering-Correlation-Id: f5f96b98-0082-4a8d-f0c6-08db31e25511 x-checkrecipientrouted: true NoDisclaimer: true X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: Wwtsl1/W2Yt5WWjpqTkAIaDGyOE6bSieKDP0LmDWVVuaEB+Y82Prugn/0nYuFYnjUYx3HjC2vR/Xrk+hu0jqmXCy+iJu7d4XnhjIS7v92sgLswLiWPLqZfFjhHoCzSBEw/CrUjQQ4N8mGeGm0eWLTfllWOjZrBRo1unoYGw+ZNNP/H9AWWqmSt8cM29qYlRG/oo/cabKAjThLHfv21OQ+0uOhke2m7o/T48W+Du/zUhRIinvYdAmRv3rSx1vPy26B+yhObX19sxDfDcireugUiGSRknQ1to5E+JvQq0tIds2RXgDuGECpIaPqJ8ewqJFv9U56zuIJq60M+wzBN3UXqbhfM0UA0TO1kF7iTfZENau8sFkUqDfuiZ3QNMYab/tDFrToINc0+lM8w8IIXAs1kgOWWiHpYsj3jJZcklJrl7dTH8YfPLtWRXehNOL2j73bNgjzkeeIA1yCGqdsRIpEMRHvgcqdKzRYM0rhQGXyNTFYEpDF8qLV+pvaFf5E51H9EewKfboifSgFhOdFxSIuEiCQ8Ob/HS7Y2aTx12Kj+/XbsOK6SmcrpPFooxsQQ34jJ0rB9X+vui7pnOQtQ+dKTl47c86e81ejKwwfsGabeY= X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DB9PR08MB7179.eurprd08.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(39860400002)(346002)(136003)(366004)(376002)(451199021)(8936002)(8676002)(110136005)(44832011)(41300700001)(5660300002)(38100700002)(478600001)(36756003)(86362001)(6512007)(66556008)(66476007)(83380400001)(2616005)(316002)(66946007)(6486002)(6666004)(6506007)(186003)(26005)(2906002)(67856001);DIR:OUT;SFP:1101; X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB8972 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: DBAEUR03FT025.eop-EUR03.prod.protection.outlook.com X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id-Prvs: 26409d18-b7e0-4764-7d40-08db31e24fc1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: BtKI1PNRcNBG2Ji0RQMuJBuXOeYXMUKHAEupjRoS5M58KuwPUVJh7MIYV27fWWdaptE4ngQXMXgl+JPRmh55NLevXER1sMx9UCZd+5sntDJw0vSj5wezFpfAXlvWqpOuBgTotkfG+l3ZEV/pe25Xm3tLb+U/eqK0ipgvUyG2QLlS/0/vbAKxAPX94COMjIoiu4mqo4y3Z2lwpgoLVLoDVoj6xQJrU1bDMaJG6TtakI1kzeynUrdYNb0DzLjhBVphIw3SZeLUYJ4ahawuMSuoT0VkDMl9n9HW/bFxspiQbklSlEPa93O9iYKHX802MJx5K1oBmMBi31tU9oPjaFcD1bkjFw58shtICEese60JJRroZzEkcNCBoC85qmFinCNT4Rz0dDHsrQh2RV4gvVdEFp7EnJwohGQXuOV7VSMY8+oZ91mzwdvVoUkziPxAq8oNB6Xue1W1tIVIJ/K3cS2Ye1Zl1vqOqGo4o666LEdXxfKrArqNDwwdz1Wl45gPA8JaWQnf6xhq9s4IUgeLSWV/3NWXXff1q29MkrXQJYIiKc+rI6LT98YfJLJ98Ku/YoAW0h8qkp7gVk/fGe27R+/QSrA7ut6s+N6fD2MESSUeI3EKG0jk3G+7+6MJTPLS7HkGKQUiS2sd1IXVGQvsaaI1Wz5cQnxicOWvBFFGC9NxeJjt5q54HsI+W4CUSYSLbZZpqIpJHTJZ/uPLnNTLbw96xZEVxvqI9Oh99fpXifNC7hI= X-Forefront-Antispam-Report: CIP:63.35.35.123;CTRY:IE;LANG:en;SCL:1;SRV:;IPV:CAL;SFV:NSPM;H:64aa7808-outbound-1.mta.getcheckrecipient.com;PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com;CAT:NONE;SFS:(13230028)(4636009)(346002)(396003)(39860400002)(376002)(136003)(451199021)(40470700004)(46966006)(36840700001)(8676002)(70586007)(110136005)(70206006)(6486002)(316002)(36756003)(6506007)(26005)(6512007)(6666004)(186003)(2616005)(40460700003)(336012)(47076005)(83380400001)(356005)(81166007)(41300700001)(82310400005)(5660300002)(8936002)(478600001)(36860700001)(40480700001)(86362001)(2906002)(82740400003)(44832011)(67856001);DIR:OUT;SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Mar 2023 12:20:36.2666 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f5f96b98-0082-4a8d-f0c6-08db31e25511 X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d;Ip=[63.35.35.123];Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: DBAEUR03FT025.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB6517 X-Spam-Status: No, score=-4.7 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,FORGED_SPF_HELO,KAM_DMARC_NONE,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_NONE,TXREP,UNPARSEABLE_RELAY 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: The 03/29/2023 18:18, stsp via Libc-alpha wrote: > Just to be more constructive, here is the > example: > > void *dlopen_with_offset(const char *file, off_t offset, int flags) > { this api requires no libc change: dump the contents to a temp file and use dlopen on it. >     off_t len; >     void *addr; >     void *handle; >     int fd; > >     fd = open(file, O_RDONLY); >     if (fd == -1) >         return NULL; >     len = lseek(fd, 0, SEEK_END); >     lseek(fd, 0, SEEK_SET); >     if (len <= offset) >       goto err_close; >     len -= offset; >     /* if offset unaligned then just use read() */ >     if (offset & (PAGE_SIZE - 1)) { >         int rd; >         addr = mmap(NULL, len, PROT_READ | PROT_WRITE, >                     MAP_ANONYMOUS | MAP_PRIVATE, -1, 0); >         if (addr == MAP_FAILED) >             goto err_close; >         rd = read(fd, addr, len); >         if (rd != len) { >             munmap(addr, len); >             goto err_close; >         } >     } else { >         addr = mmap(NULL, len, PROT_READ, MAP_PRIVATE, fd, offset); >     } >     close(fd); >     if (addr == MAP_FAILED) >         return NULL; >     handle = dlmem(addr, len, flags, NULL); >     munmap(addr, len); >     return handle; > > err_close: >     close(fd); >     return NULL; > } > > > Does it parse an elf headers? > If so - where? it creates a mapping that's not compatible with dynamic loading requirements *depending on* what the elf headers say. (elf segments may be loaded at various offsets that can conflict with the mapping that you just made) but i'm not going to think about all the different ways this is broken: you cut across abstraction layers exposing dynamic loading internals where a temp file works fine. if there is a performance problem (e.g. page sharing) likely that can be solved too via kernel level apis, not ld.so.