Blame elf/tst-dlopen-nodelete-reloc.h

Packit Service f6fae4
/* Template to produce unique symbols.
Packit Service f6fae4
   Copyright (C) 2019 Free Software Foundation, Inc.
Packit Service f6fae4
   This file is part of the GNU C Library.
Packit Service f6fae4
Packit Service f6fae4
   The GNU C Library is free software; you can redistribute it and/or
Packit Service f6fae4
   modify it under the terms of the GNU Lesser General Public
Packit Service f6fae4
   License as published by the Free Software Foundation; either
Packit Service f6fae4
   version 2.1 of the License, or (at your option) any later version.
Packit Service f6fae4
Packit Service f6fae4
   The GNU C Library is distributed in the hope that it will be useful,
Packit Service f6fae4
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service f6fae4
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Packit Service f6fae4
   Lesser General Public License for more details.
Packit Service f6fae4
Packit Service f6fae4
   You should have received a copy of the GNU Lesser General Public
Packit Service f6fae4
   License along with the GNU C Library; if not, see
Packit Service f6fae4
   <https://www.gnu.org/licenses/>.  */
Packit Service f6fae4
Packit Service f6fae4
/* This template produces a unique symbol definition for an explicit
Packit Service f6fae4
   template instantiation (without also incorporating a reference),
Packit Service f6fae4
   and an extern template declaration can be used to reference that
Packit Service f6fae4
   symbol from another object.  The modid parameter is just a
Packit Service f6fae4
   placeholder to create different symbols (because it affects the
Packit Service f6fae4
   name mangling of the static value member).  By convention, it
Packit Service f6fae4
   should match the number of the module that contains the
Packit Service f6fae4
   definition.  */
Packit Service f6fae4
Packit Service f6fae4
template <int modid>
Packit Service f6fae4
struct unique_symbol
Packit Service f6fae4
{
Packit Service f6fae4
  static int value;
Packit Service f6fae4
};
Packit Service f6fae4
Packit Service f6fae4
template <int modid>
Packit Service f6fae4
int unique_symbol<modid>::value;