mirror of
git://git.yoctoproject.org/poky.git
synced 2025-07-19 21:09:03 +02:00

Avoid infinite include loops, especially with bits/wordsize.h which is now possible with the synthesized headers since we now also synthesize bits/wordsize.h itelf for some arches e.g. arm/aarch64 In cases where extra preprocessing tools are used such as clang-tidy e.g. and these tools are not passed the knowledge about architecture then case comes where we enter into header include loop for bits/wordsize.h, since this template does explicitly include bits/wordsize.h To fix this emits the pragma once at beginning of file, this is better solution than include guards, and pragma once is practically supported on all compilers except few e.g. cray c/c++ compiler (From OE-Core rev: 6ab11ac25bb987642d5ca1a07f4bd5f30c66c9c5) (From OE-Core rev: 8f00480fe826ebaff2b78796d757b9e2734f2deb) Signed-off-by: Khem Raj <raj.khem@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
65 lines
2.0 KiB
C
65 lines
2.0 KiB
C
/*
|
|
* Copyright (C) 2005-2011 by Wind River Systems, Inc.
|
|
*
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
* in the Software without restriction, including without limitation the rights
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
* furnished to do so, subject to the following conditions:
|
|
*
|
|
* The above copyright notice and this permission notice shall be included in
|
|
* all copies or substantial portions of the Software.
|
|
*
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
* THE SOFTWARE.
|
|
*
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#if defined (__bpf__)
|
|
#define __MHWORDSIZE 64
|
|
#elif defined (__arm__)
|
|
#define __MHWORDSIZE 32
|
|
#elif defined (__aarch64__) && defined ( __LP64__)
|
|
#define __MHWORDSIZE 64
|
|
#elif defined (__aarch64__)
|
|
#define __MHWORDSIZE 32
|
|
#else
|
|
#include <bits/wordsize.h>
|
|
#if defined (__WORDSIZE)
|
|
#define __MHWORDSIZE __WORDSIZE
|
|
#else
|
|
#error "__WORDSIZE is not defined"
|
|
#endif
|
|
#endif
|
|
|
|
#if __MHWORDSIZE == 32
|
|
|
|
#ifdef _MIPS_SIM
|
|
|
|
#if _MIPS_SIM == _ABIO32
|
|
#include <ENTER_HEADER_FILENAME_HERE-32.h>
|
|
#elif _MIPS_SIM == _ABIN32
|
|
#include <ENTER_HEADER_FILENAME_HERE-n32.h>
|
|
#else
|
|
#error "Unknown _MIPS_SIM"
|
|
#endif
|
|
|
|
#else /* _MIPS_SIM is not defined */
|
|
#include <ENTER_HEADER_FILENAME_HERE-32.h>
|
|
#endif
|
|
|
|
#elif __MHWORDSIZE == 64
|
|
#include <ENTER_HEADER_FILENAME_HERE-64.h>
|
|
#else
|
|
#error "Unknown __WORDSIZE detected"
|
|
#endif /* matches #if __WORDSIZE == 32 */
|
|
|