+/* SPDX-License-Identifier: GPL-2.0+ */
/*
- * U-boot - linkage.h
+ * U-Boot - linkage.h
*
* Copyright (c) 2005-2007 Analog Devices Inc.
- *
- * SPDX-License-Identifier: GPL-2.0+
*/
#ifndef _LINUX_LINKAGE_H
#define _LINUX_LINKAGE_H
#include <asm/linkage.h>
-#include <linux/config.h>
+
+/* Some toolchains use other characters (e.g. '`') to mark new line in macro */
+#ifndef ASM_NL
+#define ASM_NL ;
+#endif
#ifdef __cplusplus
#define CPP_ASMLINKAGE extern "C"
#define CPP_ASMLINKAGE
#endif
+#ifndef asmlinkage
#define asmlinkage CPP_ASMLINKAGE
+#endif
#define SYMBOL_NAME_STR(X) #X
#define SYMBOL_NAME(X) X
#define ALIGN_STR __ALIGN_STR
#define LENTRY(name) \
- ALIGN; \
+ ALIGN ASM_NL \
SYMBOL_NAME_LABEL(name)
#define ENTRY(name) \
- .globl SYMBOL_NAME(name); \
+ .globl SYMBOL_NAME(name) ASM_NL \
+ LENTRY(name)
+
+#define WEAK(name) \
+ .weak SYMBOL_NAME(name) ASM_NL \
LENTRY(name)
#ifndef END
#ifndef ENDPROC
#define ENDPROC(name) \
- .type name STT_FUNC; \
+ .type name STT_FUNC ASM_NL \
END(name)
#endif