Received: by 2002:a25:ab43:0:0:0:0:0 with SMTP id u61csp3661419ybi; Mon, 10 Jun 2019 14:21:15 -0700 (PDT) X-Google-Smtp-Source: APXvYqyptj5fdztDS48SDRizAuCCCNFbsvwB6gqKF4K3NilboQ/+f5Q8XncbPzsQ7VBuq/vNFjcl X-Received: by 2002:a63:c106:: with SMTP id w6mr17534114pgf.422.1560201675078; Mon, 10 Jun 2019 14:21:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1560201675; cv=none; d=google.com; s=arc-20160816; b=lx+8CvljbfZe90PbvNh6tTKJtFWAdBpru3GMVI1y5LNBVy9Z60v3TIQaDpz3Mjrib8 HDvuEX8GXhUV5n8HJqVa98w0g81rKpjNFL6aoaC48xLbHneAynfQGy9B0cOSSWXSzeCq Nw+ax7yJcIHXrUDyEmlRx0fZJ5Y+AtPhFMshlbiLsM7DqET0Hn/1D4Q7zyZEc9hIQAtl 727xiM/M4Vkilfk9sigrXbxnHFu/EXPhjZyH9LJ0crOHIoOfWRX2N2120EXlkWfMF6gW ROiqYFRTdG5zaQ3NSgtVAxqm7K0zIkUY4Kt4Gp8w84X7C4VAt7MM1e2lDLDuwmZrxKnR G2vw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=OLqEwqcQdKiJLl2M9TmN5lTWvVtrhUb8Z35dqhzeL58=; b=xe3Ww8CToDgVMwZHcarCoxdUhty65MS5q6iki6E2SMK6R7NNjjU7JSddAUrT73xBIi ilXFukh980jK1vjrs63poULEaLKVpRJfM8xJPYKP97Hs/WlkYF4peleLxlknw/2PB1Wq IjFxpsKRfKeI6aRrTTNYJzqjDPp0h14UsCLQwmmMvwu7VQPtRaPAIio7PD1V5c39N1+n scYptc62d0AhHnPY0B6gV6Ie95SpljxFz/oZF0d3Yf5G2572EQLjSZmB1QijPPiuiUZl sSipHzr8k9WWFDoSAucfEfYTEjICGGSr2Lki1kD7iLU9Ek3atOcz4Faww5UqONWZYumt X5+A== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=bbZzfdlG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i6si10971504pfc.158.2019.06.10.14.21.00; Mon, 10 Jun 2019 14:21:15 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=fail header.i=@infradead.org header.s=bombadil.20170209 header.b=bbZzfdlG; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2390165AbfFJVUm (ORCPT + 99 others); Mon, 10 Jun 2019 17:20:42 -0400 Received: from bombadil.infradead.org ([198.137.202.133]:37672 "EHLO bombadil.infradead.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2390127AbfFJVUj (ORCPT ); Mon, 10 Jun 2019 17:20:39 -0400 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=bombadil.20170209; h=Content-Transfer-Encoding: MIME-Version:References:In-Reply-To:Message-Id:Date:Subject:Cc:To:From:Sender :Reply-To:Content-Type:Content-ID:Content-Description:Resent-Date:Resent-From :Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=OLqEwqcQdKiJLl2M9TmN5lTWvVtrhUb8Z35dqhzeL58=; b=bbZzfdlGlG93uqA9gUEJtstdXl AK8eyCmHJ7h+V8dBqWTibKBrSs6QSluOGj7gjlzLvnTuifrO/Sdz8/PtIu8O+TYwCyNm5XdBhiQb1 uTx7tI+RhQ1eowr5eNrmZ3Sn1tpFJ5Raog9Lt8locEHkslQ54Mdp4MIp5wYs5Yw8sXnhzICxnZie0 KUwt4gqSYV57mxIB7GfQYYNtfA+uG7YO8AKIIjET8RfAA7ICz2FismWdP3PQGFsv3Vt0RlS9SOjcn mOB8UkVbFz+FkUX9/oPfZUvHfQ90Uysr30jg5ONDQbZ2SeCyNI5ZElaTapuM+Oz+iHyAYCB8MtfrW xmnIYofw==; Received: from 089144193064.atnat0002.highway.a1.net ([89.144.193.64] helo=localhost) by bombadil.infradead.org with esmtpsa (Exim 4.92 #3 (Red Hat Linux)) id 1haRiU-0000Ur-3A; Mon, 10 Jun 2019 21:20:34 +0000 From: Christoph Hellwig To: Greg Ungerer Cc: Michal Simek , linux-arm-kernel@lists.infradead.org, linux-c6x-dev@linux-c6x.org, uclinux-h8-devel@lists.sourceforge.jp, linux-m68k@lists.linux-m68k.org, linux-riscv@lists.infradead.org, linux-sh@vger.kernel.org, linux-xtensa@linux-xtensa.org, linux-kernel@vger.kernel.org Subject: [PATCH 06/15] binfmt_flat: remove the uapi header Date: Mon, 10 Jun 2019 23:20:06 +0200 Message-Id: <20190610212015.9157-7-hch@lst.de> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20190610212015.9157-1-hch@lst.de> References: <20190610212015.9157-1-hch@lst.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org. See http://www.infradead.org/rpr.html Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The split between the two flat.h files is completely arbitrary, and the uapi version even contains CONFIG_ ifdefs that can't work in userspace. The only userspace program known to use the header is elf2flt, and it ships with its own version of the combined header. Use the chance to move the inclusion out of this file, as it is in no way needed for the format defintion, but just for the binfmt implementation. Signed-off-by: Christoph Hellwig --- fs/binfmt_flat.c | 1 + include/linux/flat.h | 45 ++++++++++++++++++++++++++--- include/uapi/linux/flat.h | 59 --------------------------------------- 3 files changed, 42 insertions(+), 63 deletions(-) delete mode 100644 include/uapi/linux/flat.h diff --git a/fs/binfmt_flat.c b/fs/binfmt_flat.c index c09651087eda..6ae0f9af3fc9 100644 --- a/fs/binfmt_flat.c +++ b/fs/binfmt_flat.c @@ -42,6 +42,7 @@ #include #include #include +#include #ifndef flat_get_relocate_addr #define flat_get_relocate_addr(rel) (rel) diff --git a/include/linux/flat.h b/include/linux/flat.h index 569b67d64d5c..21d901ba191b 100644 --- a/include/linux/flat.h +++ b/include/linux/flat.h @@ -10,8 +10,47 @@ #ifndef _LINUX_FLAT_H #define _LINUX_FLAT_H -#include -#include +#define FLAT_VERSION 0x00000004L + +#ifdef CONFIG_BINFMT_SHARED_FLAT +#define MAX_SHARED_LIBS (4) +#else +#define MAX_SHARED_LIBS (1) +#endif + +/* + * To make everything easier to port and manage cross platform + * development, all fields are in network byte order. + */ + +struct flat_hdr { + char magic[4]; + unsigned long rev; /* version (as above) */ + unsigned long entry; /* Offset of first executable instruction + with text segment from beginning of file */ + unsigned long data_start; /* Offset of data segment from beginning of + file */ + unsigned long data_end; /* Offset of end of data segment + from beginning of file */ + unsigned long bss_end; /* Offset of end of bss segment from beginning + of file */ + + /* (It is assumed that data_end through bss_end forms the bss segment.) */ + + unsigned long stack_size; /* Size of stack, in bytes */ + unsigned long reloc_start; /* Offset of relocation records from + beginning of file */ + unsigned long reloc_count; /* Number of relocation records */ + unsigned long flags; + unsigned long build_date; /* When the program/library was built */ + unsigned long filler[5]; /* Reservered, set to zero */ +}; + +#define FLAT_FLAG_RAM 0x0001 /* load program entirely into RAM */ +#define FLAT_FLAG_GOTPIC 0x0002 /* program is PIC with GOT */ +#define FLAT_FLAG_GZIP 0x0004 /* all but the header is compressed */ +#define FLAT_FLAG_GZDATA 0x0008 /* only data/relocs are compressed (for XIP) */ +#define FLAT_FLAG_KTRACE 0x0010 /* output useful kernel trace for debugging */ /* * While it would be nice to keep this header clean, users of older @@ -22,8 +61,6 @@ * with the format above, except to fix bugs with old format support. */ -#include - #define OLD_FLAT_VERSION 0x00000002L #define OLD_FLAT_RELOC_TYPE_TEXT 0 #define OLD_FLAT_RELOC_TYPE_DATA 1 diff --git a/include/uapi/linux/flat.h b/include/uapi/linux/flat.h deleted file mode 100644 index 27e595e44fb7..000000000000 --- a/include/uapi/linux/flat.h +++ /dev/null @@ -1,59 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */ -/* - * Copyright (C) 2002-2003 David McCullough - * Copyright (C) 1998 Kenneth Albanowski - * The Silver Hammer Group, Ltd. - * - * This file provides the definitions and structures needed to - * support uClinux flat-format executables. - */ - -#ifndef _UAPI_LINUX_FLAT_H -#define _UAPI_LINUX_FLAT_H - - -#define FLAT_VERSION 0x00000004L - -#ifdef CONFIG_BINFMT_SHARED_FLAT -#define MAX_SHARED_LIBS (4) -#else -#define MAX_SHARED_LIBS (1) -#endif - -/* - * To make everything easier to port and manage cross platform - * development, all fields are in network byte order. - */ - -struct flat_hdr { - char magic[4]; - unsigned long rev; /* version (as above) */ - unsigned long entry; /* Offset of first executable instruction - with text segment from beginning of file */ - unsigned long data_start; /* Offset of data segment from beginning of - file */ - unsigned long data_end; /* Offset of end of data segment - from beginning of file */ - unsigned long bss_end; /* Offset of end of bss segment from beginning - of file */ - - /* (It is assumed that data_end through bss_end forms the bss segment.) */ - - unsigned long stack_size; /* Size of stack, in bytes */ - unsigned long reloc_start; /* Offset of relocation records from - beginning of file */ - unsigned long reloc_count; /* Number of relocation records */ - unsigned long flags; - unsigned long build_date; /* When the program/library was built */ - unsigned long filler[5]; /* Reservered, set to zero */ -}; - -#define FLAT_FLAG_RAM 0x0001 /* load program entirely into RAM */ -#define FLAT_FLAG_GOTPIC 0x0002 /* program is PIC with GOT */ -#define FLAT_FLAG_GZIP 0x0004 /* all but the header is compressed */ -#define FLAT_FLAG_GZDATA 0x0008 /* only data/relocs are compressed (for XIP) */ -#define FLAT_FLAG_KTRACE 0x0010 /* output useful kernel trace for debugging */ - - - -#endif /* _UAPI_LINUX_FLAT_H */ -- 2.20.1