Re: [PATCH] arm64: add guard macro of unistd.h to prevent double inclusion

From: Arnd Bergmann
Date: Thu Sep 11 2014 - 11:15:20 EST


On Tuesday 09 September 2014 11:59:45 Yang Yingliang wrote:
> Add guard macros in both uapi/asm/unistd.h and asm/unistd.h.
>
> Signed-off-by: Yang Yingliang <yangyingliang@xxxxxxxxxx>
> ---
> arch/arm64/include/asm/unistd.h | 5 +++++
> arch/arm64/include/uapi/asm/unistd.h | 5 +++++
> 2 files changed, 10 insertions(+)

This will lead to an empty system call table, because asm/unistd.h
is intentionally included multiple times in order to get both the
syscall definition and the macros, which are defined in pairs in
this file.

How did you come up with this patch?

Arnd

> diff --git a/arch/arm64/include/asm/unistd.h b/arch/arm64/include/asm/unistd.h
> index 6d2bf41..21a7dec 100644
> --- a/arch/arm64/include/asm/unistd.h
> +++ b/arch/arm64/include/asm/unistd.h
> @@ -13,6 +13,9 @@
> * You should have received a copy of the GNU General Public License
> * along with this program. If not, see <http://www.gnu.org/licenses/>.
> */
> +#ifndef __ASM_ARM64_UNISTD_H
> +#define __ASM_ARM64_UNISTD_H
> +
> #ifdef CONFIG_COMPAT
> #define __ARCH_WANT_COMPAT_SYS_GETDENTS64
> #define __ARCH_WANT_COMPAT_STAT64
> @@ -48,3 +51,5 @@
> #include <uapi/asm/unistd.h>
>
> #define NR_syscalls (__NR_syscalls)
> +
> +#endif /* __ASM_ARM64_UNISTD_H */
> diff --git a/arch/arm64/include/uapi/asm/unistd.h b/arch/arm64/include/uapi/asm/unistd.h
> index 1caadc2..ab72cac 100644
> --- a/arch/arm64/include/uapi/asm/unistd.h
> +++ b/arch/arm64/include/uapi/asm/unistd.h
> @@ -13,4 +13,9 @@
> * You should have received a copy of the GNU General Public License
> * along with this program. If not, see <http://www.gnu.org/licenses/>.
> */
> +#ifndef _UAPI__ASM_ARM64_UNISTD_H
> +#define _UAPI__ASM_ARM64_UNISTD_H
> +
> #include <asm-generic/unistd.h>
> +
> +#endif /* _UAPI__ASM_ARM64_UNISTD_H */
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/