From 3e2e413a54599fc7dc0656c18f63bc3c40f6fb6c Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 7 Nov 2025 08:10:49 +0100 Subject: [PATCH] bfd: move ATTRIBUTE_HIDDEN to separate header ... for it to become usable in places where libbfd.h cannot (easily) be included. --- bfd/Makefile.am | 2 +- bfd/Makefile.in | 2 +- bfd/hidden.h | 34 ++++++++++++++++++++++++++++++++++ bfd/libbfd-in.h | 9 +-------- bfd/libbfd.h | 9 +-------- bfd/po/SRC-POTFILES.in | 1 + 6 files changed, 39 insertions(+), 18 deletions(-) create mode 100644 bfd/hidden.h diff --git a/bfd/Makefile.am b/bfd/Makefile.am index 3c3243269f1..557848483e7 100644 --- a/bfd/Makefile.am +++ b/bfd/Makefile.am @@ -710,7 +710,7 @@ SOURCE_HFILES = \ elf-linux-core.h elf-s390.h elf-vxworks.h \ elfxx-aarch64.h elfxx-ia64.h elfxx-mips.h elfxx-riscv.h \ elfxx-sparc.h elfxx-tilegx.h elfxx-x86.h elfxx-loongarch.h \ - genlink.h go32stub.h \ + genlink.h go32stub.h hidden.h \ libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \ libpei.h libxcoff.h \ mach-o.h \ diff --git a/bfd/Makefile.in b/bfd/Makefile.in index 6d1944c2664..ab92d52ad75 100644 --- a/bfd/Makefile.in +++ b/bfd/Makefile.in @@ -1176,7 +1176,7 @@ SOURCE_HFILES = \ elf-linux-core.h elf-s390.h elf-vxworks.h \ elfxx-aarch64.h elfxx-ia64.h elfxx-mips.h elfxx-riscv.h \ elfxx-sparc.h elfxx-tilegx.h elfxx-x86.h elfxx-loongarch.h \ - genlink.h go32stub.h \ + genlink.h go32stub.h hidden.h \ libaout.h libbfd.h libcoff.h libecoff.h libhppa.h \ libpei.h libxcoff.h \ mach-o.h \ diff --git a/bfd/hidden.h b/bfd/hidden.h new file mode 100644 index 00000000000..8a2eb517023 --- /dev/null +++ b/bfd/hidden.h @@ -0,0 +1,34 @@ +/* hidden.h -- "hidden" ELF visibility attribute abstraction. + (This include file is not for users of the library.) + + Copyright (C) 2025 Free Software Foundation, Inc. + + This file is part of BFD, the Binary File Descriptor library. + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, + MA 02110-1301, USA. */ + +#ifndef _HIDDEN_H +#define _HIDDEN_H 1 + +#ifndef ATTRIBUTE_HIDDEN +#if HAVE_HIDDEN +#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden"))) +#else +#define ATTRIBUTE_HIDDEN +#endif +#endif + +#endif /* _HIDDEN_H */ diff --git a/bfd/libbfd-in.h b/bfd/libbfd-in.h index e00bd4353e3..93e49b8b3d5 100644 --- a/bfd/libbfd-in.h +++ b/bfd/libbfd-in.h @@ -25,15 +25,8 @@ #ifndef _LIBBFD_H #define _LIBBFD_H 1 -#ifndef ATTRIBUTE_HIDDEN -#if HAVE_HIDDEN -#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden"))) -#else -#define ATTRIBUTE_HIDDEN -#endif -#endif - #include "hashtab.h" +#include "hidden.h" #ifdef __cplusplus extern "C" { diff --git a/bfd/libbfd.h b/bfd/libbfd.h index 5f1239ecb43..3e522dd4ab4 100644 --- a/bfd/libbfd.h +++ b/bfd/libbfd.h @@ -31,15 +31,8 @@ #ifndef _LIBBFD_H #define _LIBBFD_H 1 -#ifndef ATTRIBUTE_HIDDEN -#if HAVE_HIDDEN -#define ATTRIBUTE_HIDDEN __attribute__ ((__visibility__ ("hidden"))) -#else -#define ATTRIBUTE_HIDDEN -#endif -#endif - #include "hashtab.h" +#include "hidden.h" #ifdef __cplusplus extern "C" { diff --git a/bfd/po/SRC-POTFILES.in b/bfd/po/SRC-POTFILES.in index 1ba9cc2fdb1..a931b3a7c2d 100644 --- a/bfd/po/SRC-POTFILES.in +++ b/bfd/po/SRC-POTFILES.in @@ -273,6 +273,7 @@ format.c genlink.h go32stub.h hash.c +hidden.h hpux-core.c i386aout.c i386bsd.c -- 2.47.3