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

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