diff options
author | Jörg Frings-Fürst <debian@jff.email> | 2024-03-24 08:54:48 +0100 |
---|---|---|
committer | Jörg Frings-Fürst <debian@jff.email> | 2024-03-24 08:54:48 +0100 |
commit | 163a663518f33bab48b28431972e580b366b4d49 (patch) | |
tree | f518ffabaca4a0b93f0103d617e803792d3b0b43 /lib/relocatable.h | |
parent | 1b3a8d5ad2ea2f099d514d9dd51ebf926a628076 (diff) | |
parent | dd0000f7e25abe6c28d4329d324fd7fcab54094f (diff) |
Merge branch 'release/debian/1.2-1'HEADdebian/1.2-1master
Diffstat (limited to 'lib/relocatable.h')
-rw-r--r-- | lib/relocatable.h | 34 |
1 files changed, 26 insertions, 8 deletions
diff --git a/lib/relocatable.h b/lib/relocatable.h index 49452fe7..162f9d82 100644 --- a/lib/relocatable.h +++ b/lib/relocatable.h @@ -1,5 +1,5 @@ /* Provide relocatable packages. - Copyright (C) 2003, 2005, 2008-2022 Free Software Foundation, Inc. + Copyright (C) 2003, 2005, 2008-2024 Free Software Foundation, Inc. Written by Bruno Haible <bruno@clisp.org>, 2003. This file is free software: you can redistribute it and/or modify @@ -18,6 +18,11 @@ #ifndef _RELOCATABLE_H #define _RELOCATABLE_H +/* This file uses _GL_ATTRIBUTE_MALLOC, HAVE_VISIBILITY. */ +#if !_GL_CONFIG_H_INCLUDED + #error "Please include config.h first." +#endif + #include <stdlib.h> #ifdef __cplusplus @@ -28,15 +33,28 @@ extern "C" { /* This can be enabled through the configure --enable-relocatable option. */ #if ENABLE_RELOCATABLE -/* When building a DLL, we must export some functions. Note that because - this is a private .h file, we don't need to use __declspec(dllimport) - in any case. */ +/* When building a shared library, we must export some functions. + Note that because this is a private .h file, we don't need to use + __declspec(dllimport) in any case. */ #if HAVE_VISIBILITY && BUILDING_DLL -# define RELOCATABLE_DLL_EXPORTED __attribute__((__visibility__("default"))) +# define RELOCATABLE_SHLIB_EXPORTED __attribute__((__visibility__("default"))) #elif defined _MSC_VER && BUILDING_DLL -# define RELOCATABLE_DLL_EXPORTED __declspec(dllexport) +/* When building with MSVC, exporting a symbol means that the object file + contains a "linker directive" of the form /EXPORT:symbol. This can be + inspected through the "objdump -s --section=.drectve FILE" or + "dumpbin /directives FILE" commands. + The symbols from this file should be exported if and only if the object + file gets included in a DLL. Libtool, on Windows platforms, defines + the C macro DLL_EXPORT (together with PIC) when compiling for a shared + library (called DLL under Windows) and does not define it when compiling + an object file meant to be linked statically into some executable. */ +# if defined DLL_EXPORT +# define RELOCATABLE_SHLIB_EXPORTED __declspec(dllexport) +# else +# define RELOCATABLE_SHLIB_EXPORTED +# endif #else -# define RELOCATABLE_DLL_EXPORTED +# define RELOCATABLE_SHLIB_EXPORTED #endif /* Sets the original and the current installation prefix of the package. @@ -44,7 +62,7 @@ extern "C" { by the corresponding pathname with the current prefix instead. Both prefixes should be directory names without trailing slash (i.e. use "" instead of "/"). */ -extern RELOCATABLE_DLL_EXPORTED void +extern RELOCATABLE_SHLIB_EXPORTED void set_relocation_prefix (const char *orig_prefix, const char *curr_prefix); |