1 /* List of exported symbols of libintl on Cygwin. 2 Copyright (C) 2006, 2012-2013 Free Software Foundation, Inc. 3 Written by Bruno Haible <bruno@clisp.org>, 2006. 4 5 This program is free software: you can redistribute it and/or modify 6 it under the terms of the GNU Lesser General Public License as published by 7 the Free Software Foundation; either version 2.1 of the License, or 8 (at your option) any later version. 9 10 This program is distributed in the hope that it will be useful, 11 but WITHOUT ANY WARRANTY; without even the implied warranty of 12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 GNU Lesser General Public License for more details. 14 15 You should have received a copy of the GNU Lesser General Public License 16 along with this program. If not, see <https://www.gnu.org/licenses/>. */ 17 18 /* IMP(x) is a symbol that contains the address of x. */ 19 #if USER_LABEL_PREFIX_UNDERSCORE 20 # define IMP(x) _imp__##x 21 #else 22 # define IMP(x) __imp_##x 23 #endif 24 25 /* Ensure that the variable x is exported from the library, and that a 26 pseudo-variable IMP(x) is available. */ 27 #define VARIABLE(x) \ 28 /* Export x without redefining x. This code was found by compiling a \ 29 snippet: \ 30 extern __declspec(dllexport) int x; int x = 42; */ \ 31 asm (".section .drectve\n"); \ 32 asm (".ascii \" -export:" #x ",data\"\n"); \ 33 asm (".data\n"); \ 34 /* Allocate a pseudo-variable IMP(x). */ \ 35 extern int x; \ 36 void * IMP(x) = &x; 37 38 VARIABLE(libintl_version) 39