Skip to content

Commit

Permalink
Issue #369: re-enabled out-of-the-box header-only support.
Browse files Browse the repository at this point in the history
  • Loading branch information
hfp committed Feb 11, 2020
1 parent fa4ab5a commit e7a74a7
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 9 deletions.
4 changes: 3 additions & 1 deletion Makefile.inc
Original file line number Diff line number Diff line change
Expand Up @@ -787,7 +787,8 @@ else # fallback
endif
endif

COMMON ?= 1
# COMMON ?= 1
ifneq (,$(COMMON))
ifneq (0,$(COMMON))
ifneq (,$(call ctest,$(LD),-fcommon))
CFLAGS += -fcommon
Expand All @@ -797,6 +798,7 @@ else
CFLAGS += -fno-common
endif
endif
endif

FREEFORM ?= 1
ifeq (,$(strip $(GFC)))
Expand Down
18 changes: 11 additions & 7 deletions include/libxsmm_macros.h
Original file line number Diff line number Diff line change
Expand Up @@ -154,10 +154,12 @@

/* LIBXSMM_ATTRIBUTE_USED: mark library functions as used to avoid warning */
#if defined(__GNUC__) || defined(__clang__) || (defined(__INTEL_COMPILER) && !defined(_WIN32))
# define LIBXSMM_ATTRIBUTE_COMMON LIBXSMM_ATTRIBUTE(common)
# define LIBXSMM_ATTRIBUTE_MALLOC LIBXSMM_ATTRIBUTE(malloc)
# define LIBXSMM_ATTRIBUTE_UNUSED LIBXSMM_ATTRIBUTE(unused)
# define LIBXSMM_ATTRIBUTE_USED LIBXSMM_ATTRIBUTE(used)
#else
# define LIBXSMM_ATTRIBUTE_COMMON
# define LIBXSMM_ATTRIBUTE_MALLOC
# define LIBXSMM_ATTRIBUTE_UNUSED
# define LIBXSMM_ATTRIBUTE_USED
Expand Down Expand Up @@ -263,15 +265,11 @@
# define LIBXSMM_VISIBILITY_IMPORT LIBXSMM_VISIBILITY_PUBLIC
#endif

#define LIBXSMM_API_VISIBILITY(VISIBILITY) LIBXSMM_CONCATENATE(LIBXSMM_API_VISIBILITY_, VISIBILITY)
#define LIBXSMM_APIVAR(DECL, VISIBILITY, EXTERN) EXTERN LIBXSMM_RETARGETABLE LIBXSMM_API_VISIBILITY(VISIBILITY) DECL
#define LIBXSMM_API_INLINE LIBXSMM_INLINE LIBXSMM_RETARGETABLE
#define LIBXSMM_API_NONE

#if defined(LIBXSMM_SOURCE_H) /* header-only mode */
# define LIBXSMM_API_VISIBILITY_EXPORT
# define LIBXSMM_API_VISIBILITY_IMPORT
# define LIBXSMM_API_VISIBILITY_INTERN
# define LIBXSMM_API_COMMON LIBXSMM_RETARGETABLE LIBXSMM_ATTRIBUTE_COMMON
# define LIBXSMM_API_TARGET LIBXSMM_API_INLINE
# define LIBXSMM_API_EXTERN LIBXSMM_EXTERN_C
#else /* classic ABI */
Expand All @@ -288,18 +286,24 @@
# define LIBXSMM_API_VISIBILITY_IMPORT LIBXSMM_VISIBILITY_IMPORT
# define LIBXSMM_API_VISIBILITY_INTERN
# endif
# define LIBXSMM_API_COMMON LIBXSMM_RETARGETABLE
# define LIBXSMM_API_TARGET LIBXSMM_RETARGETABLE
# define LIBXSMM_API_EXTERN LIBXSMM_EXTERN
#endif

#define LIBXSMM_API_VISIBILITY(VISIBILITY) LIBXSMM_CONCATENATE(LIBXSMM_API_VISIBILITY_, VISIBILITY)
#define LIBXSMM_APIVAR(DECL, VISIBILITY, EXTERN) EXTERN LIBXSMM_API_COMMON LIBXSMM_API_VISIBILITY(VISIBILITY) DECL
#define LIBXSMM_API_INLINE LIBXSMM_INLINE LIBXSMM_RETARGETABLE
#define LIBXSMM_API_DEF

/** Public visible variable declaration (without definition) located in header file. */
#define LIBXSMM_APIVAR_PUBLIC(DECL) LIBXSMM_APIVAR(DECL, EXPORT, LIBXSMM_API_EXTERN)
/** Public visible variable definition (complements declaration) located in source file. */
#define LIBXSMM_APIVAR_PUBLIC_DEF(DECL) LIBXSMM_ALIGNED(LIBXSMM_APIVAR(DECL, EXPORT, LIBXSMM_API_NONE), LIBXSMM_CONFIG_CACHELINE)
#define LIBXSMM_APIVAR_PUBLIC_DEF(DECL) LIBXSMM_ALIGNED(LIBXSMM_APIVAR(DECL, EXPORT, LIBXSMM_API_DEF), LIBXSMM_CONFIG_CACHELINE)
/** Private variable declaration (without definition) located in header file. */
#define LIBXSMM_APIVAR_PRIVATE(DECL) LIBXSMM_APIVAR(DECL, INTERN, LIBXSMM_API_EXTERN)
/** Private variable definition (complements declaration) located in source file. */
#define LIBXSMM_APIVAR_PRIVATE_DEF(DECL) LIBXSMM_ALIGNED(LIBXSMM_APIVAR(DECL, INTERN, LIBXSMM_API_NONE), LIBXSMM_CONFIG_CACHELINE)
#define LIBXSMM_APIVAR_PRIVATE_DEF(DECL) LIBXSMM_ALIGNED(LIBXSMM_APIVAR(DECL, INTERN, LIBXSMM_API_DEF), LIBXSMM_CONFIG_CACHELINE)
/** Private variable (declaration and definition) located in source file. */
#define LIBXSMM_APIVAR_DEFINE(DECL) LIBXSMM_APIVAR_PRIVATE(DECL); LIBXSMM_APIVAR_PRIVATE_DEF(DECL)
/** Function decoration used for private functions. */
Expand Down
2 changes: 1 addition & 1 deletion version.txt
Original file line number Diff line number Diff line change
@@ -1 +1 @@
master-1.14-1184
master-1.14-1185

0 comments on commit e7a74a7

Please sign in to comment.