From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-pl1-x635.google.com (mail-pl1-x635.google.com [IPv6:2607:f8b0:4864:20::635]) by sourceware.org (Postfix) with ESMTPS id A16D5385841F for ; Tue, 8 Feb 2022 01:09:05 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org A16D5385841F Received: by mail-pl1-x635.google.com with SMTP id 10so4604852plj.1 for ; Mon, 07 Feb 2022 17:09:05 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Lb+Mv64XivCHCVoMMs/E2JGOwQTIsvZn/MK0DD2cxCc=; b=XIp+eSCSvYSi6M81ftR+81jvraZb9RnIdtvSyu56f1c5r0eJZ6DXVz7sDuVWF+JOZE 6bwCT+Tj3oGyT798FvhzR9FODkMh1jVIayqqG4+T9tktshxthe2NWAvTljqLMC62QtvU FjVG35RvS7ZbrOQTGcoLeyNRvyJaCU1ShVA3xp9F2ncgEkpa9wEZyzgVSBc7+Kx/wT/6 19xN3UGru/OUpm51IlHOIoQyvIWJRgFgP6Pe+ziTLbeF09kiFwU+I6J09FSM5KLpOSPs aVXb0qLUTDcZ32DIDjJWbt/c0R2AZVRkwDmE4Tf5p44ixGHTehn39k3pqwP4aHgRskeV tuIA== X-Gm-Message-State: AOAM530edhl36cMHve6UXVmTS5PhsyrmjOB8GyrX93vHiM0Vm1GEv8T7 YtUxFx28ZPUfNnOc9FP6tuxFcaq3KgE= X-Google-Smtp-Source: ABdhPJwoWEf5yFUfyGhQCqTkHwM9vC9jbDtwtOqz65Z8XC+EOXZU3XDnYHUv+sLB5ygQrb66gzp9Lg== X-Received: by 2002:a17:90b:1b52:: with SMTP id nv18mr1768100pjb.136.1644282544449; Mon, 07 Feb 2022 17:09:04 -0800 (PST) Received: from squeak.grove.modra.org ([2406:3400:51d:8cc0:3644:1eae:5601:d29]) by smtp.gmail.com with ESMTPSA id s42sm14111864pfg.146.2022.02.07.17.09.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 07 Feb 2022 17:09:03 -0800 (PST) From: Alan Modra To: binutils@sourceware.org Subject: [PATCH 3/4] Remove bfd ELF_RELROPAGESIZE Date: Tue, 8 Feb 2022 11:38:32 +1030 Message-Id: <20220208010833.2103874-4-amodra@gmail.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220208010833.2103874-1-amodra@gmail.com> References: <20220208010833.2103874-1-amodra@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-3036.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 08 Feb 2022 01:09:07 -0000 Now that ld properly aligns the end of the relro segment, the hack to make relro work on powerpc can disappear. bfd/ * bfd.c (bfd_emul_get_commonpagesize): Remove relro param. Don't return bed->relropagesize. * elf-bfd.h (struct elf_backend_data): Remove relropagesize. * elfxx-target.h (ELF_RELROPAGESIZE): Remove. * elf32-ppc.c (ELF_RELROPAGESIZE): Don't define. * elf64-ppc.c: Likewise. * bfd-in2.h: Regenerate. ld/ * ldemul.c (after_parse_default): Adjust bfd_emul_get_commonpagesize call. diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h index 8e815bab624..3b2a4f49a9b 100644 --- a/bfd/bfd-in2.h +++ b/bfd/bfd-in2.h @@ -7273,7 +7273,7 @@ bool bfd_alt_mach_code (bfd *abfd, int alternative); bfd_vma bfd_emul_get_maxpagesize (const char *); -bfd_vma bfd_emul_get_commonpagesize (const char *, bool); +bfd_vma bfd_emul_get_commonpagesize (const char *); char *bfd_demangle (bfd *, const char *, int); diff --git a/bfd/bfd.c b/bfd/bfd.c index a2f294da983..9b82353f573 100644 --- a/bfd/bfd.c +++ b/bfd/bfd.c @@ -2344,7 +2344,7 @@ FUNCTION bfd_emul_get_commonpagesize SYNOPSIS - bfd_vma bfd_emul_get_commonpagesize (const char *, bool); + bfd_vma bfd_emul_get_commonpagesize (const char *); DESCRIPTION Returns the common page size, in bytes, as determined by @@ -2355,7 +2355,7 @@ RETURNS */ bfd_vma -bfd_emul_get_commonpagesize (const char *emul, bool relro) +bfd_emul_get_commonpagesize (const char *emul) { const bfd_target *target; @@ -2366,10 +2366,7 @@ bfd_emul_get_commonpagesize (const char *emul, bool relro) const struct elf_backend_data *bed; bed = xvec_get_elf_backend_data (target); - if (relro) - return bed->relropagesize; - else - return bed->commonpagesize; + return bed->commonpagesize; } return 0; } diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h index 1d3ae76339a..889a4746371 100644 --- a/bfd/elf-bfd.h +++ b/bfd/elf-bfd.h @@ -946,9 +946,6 @@ struct elf_backend_data /* The common page size for this backend. */ bfd_vma commonpagesize; - /* The value of commonpagesize to use when -z relro for this backend. */ - bfd_vma relropagesize; - /* The p_align value for this backend. If it is set, p_align of PT_LOAD alignment will be to p_align by default. */ bfd_vma p_align; diff --git a/bfd/elf32-ppc.c b/bfd/elf32-ppc.c index 53051308eb1..42273ca06fe 100644 --- a/bfd/elf32-ppc.c +++ b/bfd/elf32-ppc.c @@ -10373,7 +10373,6 @@ ppc_elf_finish_dynamic_sections (bfd *output_bfd, #define ELF_MACHINE_CODE EM_PPC #define ELF_MAXPAGESIZE 0x10000 #define ELF_COMMONPAGESIZE 0x1000 -#define ELF_RELROPAGESIZE ELF_MAXPAGESIZE #define elf_info_to_howto ppc_elf_info_to_howto #ifdef EM_CYGNUS_POWERPC diff --git a/bfd/elf64-ppc.c b/bfd/elf64-ppc.c index 7223c497d07..f9c808dd294 100644 --- a/bfd/elf64-ppc.c +++ b/bfd/elf64-ppc.c @@ -75,7 +75,6 @@ static bfd_vma opd_entry_value #define ELF_MACHINE_CODE EM_PPC64 #define ELF_MAXPAGESIZE 0x10000 #define ELF_COMMONPAGESIZE 0x1000 -#define ELF_RELROPAGESIZE ELF_MAXPAGESIZE #define elf_info_to_howto ppc64_elf_info_to_howto #define elf_backend_want_got_sym 0 diff --git a/bfd/elfxx-target.h b/bfd/elfxx-target.h index e31985ef777..0579f64d1a0 100644 --- a/bfd/elfxx-target.h +++ b/bfd/elfxx-target.h @@ -379,10 +379,6 @@ #define ELF_COMMONPAGESIZE ELF_MAXPAGESIZE #endif -#ifndef ELF_RELROPAGESIZE -#define ELF_RELROPAGESIZE ELF_COMMONPAGESIZE -#endif - #ifndef ELF_MINPAGESIZE #define ELF_MINPAGESIZE ELF_COMMONPAGESIZE #endif @@ -390,15 +386,9 @@ #if ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE # error ELF_COMMONPAGESIZE > ELF_MAXPAGESIZE #endif -#if ELF_RELROPAGESIZE > ELF_MAXPAGESIZE -# error ELF_RELROPAGESIZE > ELF_MAXPAGESIZE -#endif #if ELF_MINPAGESIZE > ELF_COMMONPAGESIZE # error ELF_MINPAGESIZE > ELF_COMMONPAGESIZE #endif -#if ELF_MINPAGESIZE > ELF_RELROPAGESIZE -# error ELF_MINPAGESIZE > ELF_RELROPAGESIZE -#endif #ifndef ELF_P_ALIGN #define ELF_P_ALIGN 0 @@ -822,7 +812,6 @@ static const struct elf_backend_data elfNN_bed = ELF_MAXPAGESIZE, /* maxpagesize */ ELF_MINPAGESIZE, /* minpagesize */ ELF_COMMONPAGESIZE, /* commonpagesize */ - ELF_RELROPAGESIZE, /* commonpagesize to use with -z relro */ ELF_P_ALIGN, /* p_align */ ELF_DYNAMIC_SEC_FLAGS, /* dynamic_sec_flags */ elf_backend_arch_data, diff --git a/ld/ldemul.c b/ld/ldemul.c index 5c5adef06bb..85c00ded75e 100644 --- a/ld/ldemul.c +++ b/ld/ldemul.c @@ -235,8 +235,7 @@ after_parse_default (void) if (link_info.maxpagesize == 0) link_info.maxpagesize = bfd_emul_get_maxpagesize (default_target); if (link_info.commonpagesize == 0) - link_info.commonpagesize = bfd_emul_get_commonpagesize (default_target, - link_info.relro); + link_info.commonpagesize = bfd_emul_get_commonpagesize (default_target); } void