From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-qk1-f170.google.com (mail-qk1-f170.google.com [209.85.222.170]) by sourceware.org (Postfix) with ESMTPS id 79E8D3858C60 for ; Fri, 15 Mar 2024 00:16:50 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 79E8D3858C60 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=gcc.gnu.org Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 79E8D3858C60 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=209.85.222.170 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710461867; cv=none; b=VJls1XwzNE+q3D+iG840HdlUSoG46O5XNkXCtg0cLyLAx6SJX/bUV7zqEZ002TfSjIoUExnGggzATZzHs8sQxC7BucBKaU/HBpkj0sAF2iGMF0gAV7+itc3m919p6lCbsj46E16GLUb0zD95BVceKFii60WRLyylN5B5h5dewHc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1710461867; c=relaxed/simple; bh=RXjmwcYfezVJd4Rjlmm5ZU1akVdnHsVWco3S2NQP83c=; h=MIME-Version:From:Date:Message-ID:Subject:To; b=VPoVeMIT4l3jLvQTnxYtRazOzySmbKxyfZQugqX7BCus8tKhfIMv23QY8JdRXTo8mKe/XYMUSQW5P+I59BOpg0sGEXd4Cq2Jv8u56QjI1kNuCP0XLUtgTWPzp5Hy/Qzp6POZrFMFcFOM80NBrXYQ9icLT2RDi/FgcGFYpdBs7ps= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-qk1-f170.google.com with SMTP id af79cd13be357-789e5021703so6245085a.0 for ; Thu, 14 Mar 2024 17:16:50 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710461810; x=1711066610; h=cc:to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=RXjmwcYfezVJd4Rjlmm5ZU1akVdnHsVWco3S2NQP83c=; b=uqlel6oXxE2oNbrrvLVHRIdlPHMty15BECKfPyC4pJzttcTINXL1iVx6QQCZT7dOyz 9Pb75NNvuT+CVyYzvdZKseNAsiJXAWFQ9eExcPRNnzYlbzXrmusD/9SlvYHpPt13UIqN p1+nKaed/A2G8nN4wKhaP3NkpaMopVV6ncQKhVTmha+UU+K9f9r5mbj7H808P/4axlNI vY4EisQX2VdkP9Jlo0S7eZvqo7nGaP0Lc6QV1hQ/pAlYRzqVpWALg02Cw1oZVz9TKzgg NXC7rsZguVX9XKlA+8IdOzFlU6W7ZUQ6T/Fj7mkfyoyVN1q7yliPdnYwXwydbmnApgWu FrCg== X-Forwarded-Encrypted: i=1; AJvYcCX05GnhGYYghlMsjBpOkWbanDSF2ZwMBHLvwgPS8BNsFQA20Q97BEdCCQViWmZ0dN9SdWzwhxzg9zHbVEdWODk= X-Gm-Message-State: AOJu0YzoHxccZY5DpZeV5AWN/3X1RRih9yxINWi41zryab4S/v/EsItU MUUwvEYMR8jomKrLidD0S2tDM2DQJjqsxJEVuNiN0hU+hF0mIVHgP2NYWwnz X-Google-Smtp-Source: AGHT+IH2bAD36oOh0U5bqi1l44KlSBhZ3HGSyroBZko8F9ht+2kRtD6dgkVqg8uBoaUfhvswJmoQ5w== X-Received: by 2002:a05:620a:1035:b0:788:2fe6:5521 with SMTP id a21-20020a05620a103500b007882fe65521mr3735663qkk.55.1710461809507; Thu, 14 Mar 2024 17:16:49 -0700 (PDT) Received: from mail-vk1-f176.google.com (mail-vk1-f176.google.com. [209.85.221.176]) by smtp.gmail.com with ESMTPSA id c15-20020a05620a134f00b00788217985bcsm1413889qkl.119.2024.03.14.17.16.49 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Thu, 14 Mar 2024 17:16:49 -0700 (PDT) Received: by mail-vk1-f176.google.com with SMTP id 71dfb90a1353d-4d42d18bd63so405741e0c.2 for ; Thu, 14 Mar 2024 17:16:49 -0700 (PDT) X-Forwarded-Encrypted: i=1; AJvYcCXY5g+A+HNzyULmYcO3fazFu1fDtfO1e4adWNQduIq80AbsKmuBh6WKisBShBf05gJ3JhZExfWUJpBluSRFMOU= X-Received: by 2002:a05:6122:2511:b0:4d3:3236:e91 with SMTP id cl17-20020a056122251100b004d332360e91mr3425307vkb.11.1710461809017; Thu, 14 Mar 2024 17:16:49 -0700 (PDT) MIME-Version: 1.0 From: Fangrui Song Date: Thu, 14 Mar 2024 17:16:38 -0700 X-Gmail-Original-Message-ID: Message-ID: Subject: RELLEB relocation format for ELF To: binutils@sourceware.org, gcc@gcc.gnu.org Cc: Cary Coutant Content-Type: text/plain; charset="UTF-8" X-Spam-Status: No, score=1.3 required=5.0 tests=BAYES_00,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM,HEADER_FROM_DIFFERENT_DOMAINS,KAM_DMARC_STATUS,KAM_INFOUSMEBIZ,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS,TO_NO_BRKTS_PCNT,TXREP,T_SCC_BODY_TEXT_LINE autolearn=no autolearn_force=no version=3.4.6 X-Spam-Level: * X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: The relocation formats REL and RELA for ELF are inefficient. In a release build of Clang for x86-64, .rela.* sections consume a significant portion (approximately 20.9%) of the file size. I propose RELLEB, a new format offering significant file size reductions: 17.2% (x86-64), 16.5% (aarch64), and even 32.4% (riscv64)! Your thoughts on RELLEB are welcome! Detailed analysis: https://maskray.me/blog/2024-03-09-a-compact-relocation-format-for-elf generic ABI (ELF specification): https://groups.google.com/g/generic-abi/c/yb0rjw56ORw binutils feature request: https://sourceware.org/bugzilla/show_bug.cgi?id=31475 LLVM: https://discourse.llvm.org/t/rfc-relleb-a-compact-relocation-format-for-elf/77600 Implementation primarily involves binutils changes. Any volunteers? For GCC, a driver option like -mrelleb in my Clang prototype would be needed. The option instructs the assembler to use RELLEB.