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

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