From patchwork Fri Dec 14 00:15:18 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Luc Van Oostenryck X-Patchwork-Id: 10730125 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 5020F13AF for ; Fri, 14 Dec 2018 00:15:48 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 41ABB2CDFD for ; Fri, 14 Dec 2018 00:15:48 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 3601E2CEE6; Fri, 14 Dec 2018 00:15:48 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-8.0 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id D53142CDFD for ; Fri, 14 Dec 2018 00:15:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727638AbeLNAPr (ORCPT ); Thu, 13 Dec 2018 19:15:47 -0500 Received: from mail-ed1-f65.google.com ([209.85.208.65]:42074 "EHLO mail-ed1-f65.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727245AbeLNAPr (ORCPT ); Thu, 13 Dec 2018 19:15:47 -0500 Received: by mail-ed1-f65.google.com with SMTP id j6so3531206edp.9 for ; Thu, 13 Dec 2018 16:15:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=UqE48cTlwuS18BRG2TAxkirWSAEL3sT8CNQLWzlwcls=; b=rvtu4VwePhX1THOi5neMTfLPhGKHjMN5gUGW6t2ecKLGo3JmdiAy3f8cW7mFhwLCDw pdbHJzZGtFkn5NG0c5rnh+KBGmDO/KyBxmz2RDufwwmF5WHO574XrNanbmyPopsIxLGp 5B/nJPJrGyZd+DVJyaaExaG642REZIuUHtORTa/F+8IDZ3Ljfb2e+NjbRzF6Z7nFOR1g rMvvYvJmDCKxVC1FoPi/riEoI2YocO9BHo2K7kXiPYCinVIiYLCo3JL6J1Cbqk6r3Hdh zvxQ0aXUti7WbMI2OnDF56fAaljiyxDcHTP7cw01hEuKNdEcFP95/szRQsmpH0JYESg7 XDJg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=UqE48cTlwuS18BRG2TAxkirWSAEL3sT8CNQLWzlwcls=; b=HoOXVyCRTb5yn+QREHSFIPtS/5Ov+yhVgR46OjGffTWwPZ+/GmFGJ1Y1hwwEnhg8pt 04ROCZKMAo/LeXYHbHIErYWNH9X1Ad13E0DHVWDvVuy77jcBtpc/oZSMer7TMi8lnMF4 9cjLq8GJx3LyMMh8W8vNYPd/8hMMoRiCoSbNZtus0f+LluNdDnxMZP/MycJL9lmfHxHu dcxNm5xFGHjzQkp+Dc5bP77mxYRZLyyhYArAFec8ybWHEnilwU5jNAObcsS+yMrlP50V plj02wcLu+59CCgCtc3LL6bwP9BZxs8sl6eWSX4PUS4122ZLrJU3dJNKNzHNwqQGQDZ3 qjug== X-Gm-Message-State: AA+aEWaIlVecT4XkwnkbSdhKJFsif0sIxUQ0UCebrfiifxjCNtLmXtWM B0okz9dGvc9Mx+QZG0j4RKz1F/8x X-Google-Smtp-Source: AFSGD/WnS4XLStKLTZO4XpFZhnHEa6micL9W9So7TDS+N6BeBJ5NteazXbC2HaFMG54Ip5MNsyJpYA== X-Received: by 2002:a17:906:5118:: with SMTP id w24-v6mr837712ejk.215.1544746545266; Thu, 13 Dec 2018 16:15:45 -0800 (PST) Received: from localhost.localdomain ([2a02:a03f:4081:8a00:5930:404c:ddbe:1aaf]) by smtp.gmail.com with ESMTPSA id f20sm986489edf.19.2018.12.13.16.15.44 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 13 Dec 2018 16:15:44 -0800 (PST) From: Luc Van Oostenryck To: linux-sparse@vger.kernel.org Cc: Ramsay Jones , Luc Van Oostenryck Subject: [PATCH v3 01/19] add detection of native platform Date: Fri, 14 Dec 2018 01:15:18 +0100 Message-Id: <20181214001536.6259-2-luc.vanoostenryck@gmail.com> X-Mailer: git-send-email 2.19.2 In-Reply-To: <20181214001536.6259-1-luc.vanoostenryck@gmail.com> References: <20181214001536.6259-1-luc.vanoostenryck@gmail.com> MIME-Version: 1.0 Sender: linux-sparse-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-sparse@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP The underlying type of most builtin types (size_t, int32_t, ...), as well as their size, the endianness and other parameters are platform dependent. The minimal is to have these parameters correct on the native machine. Use the diffrent predefined macros to detect the native machine. Signed-off-by: Luc Van Oostenryck --- machine.h | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 machine.h diff --git a/machine.h b/machine.h new file mode 100644 index 000000000..a01cdc207 --- /dev/null +++ b/machine.h @@ -0,0 +1,54 @@ +#ifndef MACHINE_H +#define MACHINE_H + +enum machine { + MACH_ARM, + MACH_ARM64, + MACH_I386, + MACH_X86_64, + MACH_MIPS32, + MACH_MIPS64, + MACH_PPC32, + MACH_PPC64, + MACH_RISCV32, + MACH_RISCV64, + MACH_SPARC32, + MACH_SPARC64, + MACH_M68K, + MACH_S390X, + MACH_UNKNOWN +}; + +#if defined(__aarch64__) +#define MACH_NATIVE MACH_ARM64 +#elif defined(__arm__) +#define MACH_NATIVE MACH_ARM +#elif defined(__x86_64__) || defined(__x86_64) +#define MACH_NATIVE MACH_X86_64 +#elif defined(__i386__) || defined(__i386) +#define MACH_NATIVE MACH_I386 +#elif defined(__mips64__) || (defined(__mips) && __mips == 64) +#define MACH_NATIVE MACH_MIPS64 +#elif defined(__mips__) || defined(__mips) +#define MACH_NATIVE MACH_MIPS32 +#elif defined(__powerpc64__) || defined(__ppc64__) +#define MACH_NATIVE MACH_PPC64 +#elif defined(__powerpc__) || defined(__powerpc) || defined(__ppc__) +#define MACH_NATIVE MACH_PPC32 +#elif defined(__riscv) && (__riscv_xlen == 64) +#define MACH_NATIVE MACH_RISCV64 +#elif defined(__riscv) && (__riscv_xlen == 32) +#define MACH_NATIVE MACH_RISCV32 +#elif defined(__sparc_v9__) +#define MACH_NATIVE MACH_SPARC64 +#elif defined(__sparc__) || defined(__sparc) +#define MACH_NATIVE MACH_SPARC32 +#elif defined(__m68k__) +#define MACH_NATIVE MACH_68K +#elif defined(__s390x__) || defined(__zarch__) +#define MACH_NATIVE MACH_S390X +#else +#define MACH_NATIVE MACH_UNKNOWN +#endif + +#endif