From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1466 invoked by alias); 3 May 2017 16:52:18 -0000 Mailing-List: contact elfutils-devel-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Post: List-Help: List-Subscribe: Sender: elfutils-devel-owner@sourceware.org Received: (qmail 962 invoked by uid 89); 3 May 2017 16:52:17 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Checked: by ClamAV 0.99.2 on sourceware.org X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 spammy= X-Spam-Status: No, score=-25.5 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.2 X-Spam-Checker-Version: SpamAssassin 3.3.2 (2011-06-06) on sourceware.org X-Spam-Level: X-HELO: EUR01-VE1-obe.outbound.protection.outlook.com Received: from mail-ve1eur01on0121.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (104.47.1.121) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 03 May 2017 16:52:11 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qtcompany.onmicrosoft.com; s=selector1-qt-io; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=YzZyJwHi6lTbGPvIaofolTQSm50BmY2tkiQDzyUforE=; b=XXBCsXPtlJ5apOHcXwzLSEHZhq4AAww/y+jdhhloaN2oLccugKK6/3ijikqhv9ibQbmzUBFkt6BsCrijpP4xLraJXeEIvJ9VsDQcfCrCF8Zc0ZpQsNRhPzIngAq2lCnRNKjBokYViqsxJFURHt4r6CiIqYVvfo6Hi+MlvG41lj0= Authentication-Results: sourceware.org; dkim=none (message not signed) header.d=none;sourceware.org; dmarc=none action=none header.from=qt.io; Received: from [10.9.78.56] (62.220.2.194) by DB3PR02MB234.eurprd02.prod.outlook.com (2a01:111:e400:9410::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1075.11; Wed, 3 May 2017 16:52:10 +0000 From: Ulf Hermann Subject: [PATCH] Add replacement endian.h and byteswap.h to libgnu To: Message-ID: <13571bb4-a75a-070f-3d19-2da85637db23@qt.io> Date: Thu, 04 May 2017 08:20:00 -0000 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:45.0) Gecko/20100101 Thunderbird/45.8.0 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 7bit X-Originating-IP: [62.220.2.194] X-ClientProxiedBy: DB5PR03CA0081.eurprd03.prod.outlook.com (2a01:111:e400:598b::49) To DB3PR02MB234.eurprd02.prod.outlook.com (2a01:111:e400:9410::19) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5a183202-1e6a-4d21-65f9-08d49244bd95 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:DB3PR02MB234; X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB234;3:SFjun5ccPnpv94zicbOqWd3uBICUHZqyl+pHw7gTsD1Ru0HBk8Hu54twgWhabFOwl0fN6XdiMWA5OmkqdUFsRSSAfkaNjfT27OWM6L8UYcKSWa/0W0ufwJl9UQ1cwrR7jAVVNgZFmwnMQLbUkrhgZD2GwzvU2xR23cdPlcrVQ8UILyn5LqQ9XRV4ShmUCG47ncGtslJX7C4Y0r+PAOCzk50Z3MOHUYEj2TRqHc8xJ03PaXC/y/JB9SXuRW0cvVo0tLTojCBklagG3MUdyM0ZemsqwzFY3KtAeEFfmKGHhb/S6NpITcgzzTYdpBiZvaKNcVksIBJvZ4EopZbY7aLhfw==;25:nnbY9ZEh+R2mR1Y8HrdQr9CqItZ4faIf1nW+TpOotyq77CknMtOHpi0lNTNDaLyn2+sTTjXh48Xk53KfxCBEOjAENXbg2qiKmx0wGQfR75kOLfnVPQJXfdPZ5E5jNsIBQHYM0JQxbfadK7q/BE3Hb8mhY/XdXoohA814lNiV+UPVlYNBSiZopHt+JOt5bI7q0kznjxkENClBNmMkqPjMhAbo3aHvA21+CHWd4qucK/82gcG5yTsHY9N2AUSZ9FkU5tYH4nx7X+MZKNWrf34YisbUK9E9g/VO91lY5zBJUuGM1dJb3BMnYNLDVGQNTG6j1naIMOkweay5HRnnhwcZ1gOfeOqYjUtX4OIrsGYJMQ1ZW4H6Of0E6vfx7sp0EeD+fwfjqjmmkD1xONgANyYT8mcN0JlSFf9F4u1OolwxXbUxRHOoh5SmqPVDIMi4OeT9K5pVm5FTKi1DQ4C8GgAsk419HVYRUdNlwiXMi7HKGZs= X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB234;31:91r0VjqXNvDsW6dcrnQC/vGqGLgD+KJ595HR0PYQNm9LKPR+ifhB090t8VOlzIew28emajH1jjffmYxZok0kAKXJ4p4ojeiqbzf3AL3MbZyGX3dMjzh89GmALoc7pTOhgTWfS28t4REU5QaGk6BS7XTNi0nQIOlrz1gGQJGL3YniXFUDOOWLmlxmvccXr7jx0jEinySRdhmpM8sBICJjvZxb3o44u7++rupEJV/nHLtpic6OMHTMVeJjm/Ybfj2oPG5eYpoalnCGU8n0Ly0gap56JVOxkFQNyJORqLPfY6Y=;20:afceItVMvjmaiXG+J0zdH0Cqj2l3Tizh4xRpgc0Je0ZKlRHvT8o8XINhvPa5h0yGEvrzCvJf4wnxoA9CHwlqlcQoHZoSANiOR86DUCBL56Tlna9ELqMfYrcIV1kqVbhz8skiZSJFJl/Y7mMlk51R4g4244V4+atvGZmdP9Grd4KjNNm7nVMcv/0MX/3AxmKn09iL1bAGVBpQmDPkzyxtqAzHCioyDHBvwNqFBuTgeE0kowNUHeAZqKmIq9mfYkjw X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(250305191791016)(22074186197030); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(6041248)(20161123562025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123560025)(20161123558100)(20161123564025)(20161123555025)(6072148);SRVR:DB3PR02MB234;BCL:0;PCL:0;RULEID:;SRVR:DB3PR02MB234; X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB234;4:lI206LS2DkEnxHmlKhmS5dNDuOlpfdiSpSIyQZWA7ilEMvvSNr1GYg0mmhp6fyF14aeoeHS9fe1xHWCubcGAPFlZUNpSUU5VOmzhJLHFCs2OSEFtuFEic4ZKh2YBGmvN550j7SQvMKZ7w/VwOPZ15rpxWGpIHLivk0u8KoKqq60WoHpb2Uq5c9SB2XQ4ejml4VxacyN0Q6EVP5/54VyxsnD2SX3jG6kk6b9c3D4N3pNhdo0EB9n55+6pfNsEo4fOD2oK1XhBw3D6yZulK5kmuGSeVPtumeV/nEjocqyXholtHLg4E2iS3Qn68/b9XHmJWQy+jHrK4y8DNn6+3EPtMYGHsKkjc3mGDQcExdzy8bPLjNrequLL/8CnocCGk6D+i+BV2aA8C08Phzdj2YEJQj/isYQOVQDgbqAQAQy8D0m7hdLnfUAFOROGCMaJFymo8i1Eh1nuGYcrPuaKh5WjJtpXlRsu6k2Av9ryuLA5mEIK2yKngiIs4+KTvlObns+VM2812Oaar5T/Pb9WaL4SR6o6cM/BAocGmPyDzgymtVKahYJ6mXMBUJA0LZLxHqR45/eOW9/Hr6G46+S8accyDRFVQ5zq0jNx+bCp4lKXdoeYKQDlUXCfqvjiCVbHzMiy9vo2OPNnSi7inVD9Lnip3cmxlF87UJJDjMFcwVKYLvr71ks8Mkg5gKcVZPq9GMGK3kekuA/K0jMq68n+RKA8IW2pmdtxDzlubFqqH6MzJMoNKoxxvzBBcAGrHnJxvEDIYez6kbfw7YxzzsH+fHw47Ierxyyn8GUkJ1vNPvWbV37FQx4UhQ5D+tvNp4EAL/wK3ZyK+p5uSEnTrtYiJjM3DBaGkgdOCxQWnIt7cnBqeFSog6AXBFHJSJ62mJHz97Xp X-Forefront-PRVS: 029651C7A1 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(39400400002)(39410400002)(39840400002)(39450400003)(377424004)(54534003)(31696002)(6666003)(6916009)(6116002)(83506001)(3846002)(25786009)(6486002)(77096006)(42186005)(5660300001)(23676002)(47776003)(230700001)(110136004)(38730400002)(50466002)(86362001)(4001350100001)(54356999)(36756003)(64126003)(50986999)(7736002)(305945005)(8676002)(81166006)(2906002)(33646002)(6306002)(53936002)(74482002)(31686004)(189998001)(4001150100001)(478600001)(2351001);DIR:OUT;SFP:1102;SCL:1;SRVR:DB3PR02MB234;H:[10.9.78.56];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjNQUjAyTUIyMzQ7MjM6OXlWUkFsOGZUa2pYS0ZWNFlsdEV0N1Rwa3lt?= =?utf-8?B?Zkh6T2ZtSUlCOWVHZmF4REZKU0JNNTU5VXpKTW50c1JPaERRbGNpMFQ2K1E0?= =?utf-8?B?ODQ2cE9rVjJVanZmRXozYVR6cHlPYW9RcXZWYk15aXBjSnByYjBnMFR2RWdw?= =?utf-8?B?U2RVZjBaYlUvS3RUNTJteElNdE5TdHB1dEhnZjZ0T2ZMRXg5d2kycEZsNW4v?= =?utf-8?B?eUlYVk81K2xEcmJlSmlndlpyNVF5TUNJM2UrTmlodkh6cDF3WENEaWp2U2Mw?= =?utf-8?B?SmNXRndGU05FNFRNRUx4a1JWYU9pRDZJd3dUdzhkamtBMjMzS0ZmcWNwMjhz?= =?utf-8?B?R1NqL0hoM29XQ1FVTnhwdEpnR2VmcHJ0UDVHQTZvZU9XenJUWUZhQ3ZIVDFV?= =?utf-8?B?UlhDdDVRQnJDcExhdU53RS83RUhWYVZVOUh4SzJQa29UTGEwS1hYOE8zcjQx?= =?utf-8?B?QWhQcHQvY1UxSUJHcGM5Z08wMndqRE1xYjdWdGZRc3l5K3ZiUWM5UzVNaTQx?= =?utf-8?B?NWhYUzI2a3ZETEx5RnpKQ2NoYWVNd1J5eVhnWFJkZjlzbksvUytlYzVkQ2dI?= =?utf-8?B?dFNHUHRQampBdC8rL2JoY0JoTjV4NU9EWk90UisrSmFqd2RVbWJyL0Iyb3Bz?= =?utf-8?B?SVhOYk92bTNuUVBrSzkxOXlzamJabEZnQVN1RStweEsrMjVPakpZbW9pYWFR?= =?utf-8?B?Z3hpYS8wallHQlpHWlpqSC9FeXdVaXJaL3VOSjQ0dG5oeUFvaVpzeXkvWU1Q?= =?utf-8?B?RW1CYjY0eUd3VjlQanVzNTBac0xCQXNGa093SDdnQzdoYmtCVittTUVLbHlz?= =?utf-8?B?Y1p5QkZqZStIWC9yOFVEM3lRdElGa3M4dUNCTFF0OWdhSzd2V0h3Z2dpaVl6?= =?utf-8?B?MnpGZHFoSkRnTHp0UW5rWmxrVFA4QkU0MzZFM2NrZkNvdk0rYkkwczBtd01n?= =?utf-8?B?bVNUaEJrYmk4QkZyclZjV1NLcTlKaE9Fbll3NXZWblJlRlUxOGxCSFRLdS9m?= =?utf-8?B?T2xtd0ZpaERaa2lkTW9aZjgwTjlqaHZmNDZFa3hjSG8vK3d1cHFNSXZKQXlV?= =?utf-8?B?bXErUWlxN2RJdjQ0dkE4Yi9WNUZUZU0zN21MV2ZWS3dQdStmaDVEM3ZFd205?= =?utf-8?B?TTBjMmZaMFR1MDVPcnd2VkNMcmtYZzlQNlZNcVRZZFhKbnRhQXlWOURKRG4z?= =?utf-8?B?SlVXaW56RmY0V0FZNVJKREQyL2ZKN0VtY2VKaFFWZW1VeUFnclN2enJHQVRC?= =?utf-8?B?WThmZHdZUVhyMGs2VkFEN2hwVHRqekZFczdzYVorcU9qeEx4Si9rSFdPbnM4?= =?utf-8?B?Uy8wYWViY1lMQlhybDlLRzlISDB5eWp6ZmdKRm00NmMxUlRuOTE2QmZNS3Fo?= =?utf-8?B?RytwcUdvN1RtOUxxQ1RySUQzbjZMbEc1ZzlMTjV6emNHQW9SZDZzZWxhTm1R?= =?utf-8?B?bFFoQzhDWXhrRjFWbHFycEdyaVhMcEFxR0FDaXFnL3hkQkh3dWgzS3U2RjV5?= =?utf-8?B?YXRTbHN0WjJQK2tqR2JFcEdTL1NsSitEMzRZMEJpdFh6YnZEdmJ3WGIycW1U?= =?utf-8?B?bDRRMG1pWDFVVHlrRVhVWDJ4RC9hUT09?= X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB234;6:lpPTbgCsJq5kPZl+bYtQPyzgsM8g75vJuN7i4EX9YNYNZ4qrwWKW+uE/OlN1IemWmABsFQa/Z/nh1mxPW8Ls/tFVF1o5lW537F501/7seLE0nGZSycPoVBWZD7aWcg+xnjEk8ED64heoz0vzLkC7R84SV7N2/XWLVb33yINn5jZzuB5cOYYB+20b1DS9q59u9xQB6asx/lDh7ax/WbPALVfuD32ocMiK2n2UHqh3ECj6lMlCelwR69zIgA57rGke4zoY86KOrYOPQeimUh17kvoCMbXJsvEBFQRr95iJSIXLHhgjkK/L24OW9eWiBgpR3Ztwd1le92J2U8CGcKsqxh3E8FR71ACSnEreUW5NmRSqJw885wXigZ/uKrQl5T83sidbh3yYoBkjibClVLTw8U8XJnc2SKHQhAPP0S/7lIf8jKTu9IA8jPnIJ8zSsGzRtFB9up7pB8gVF8sDlNmrXpbBw6LSsN3XctBmSOxj+6JxO5+2ToJspWOCSS9Iy7fAUvs2gtrcI7NllcjWzwSeXQ==;5:MnItHWVNQiI40fovp4Lbic/hmunpb70ulk9DVEY9Lt/W4bhlWi9gPgb7o3vF0d0CmfHpkj+qs4w2Rn/LsCqGgEghFryb866kuIIR9/Bd7L5X2oeMOcc4O2PzAipG82DsJ5ViyJjtPlb5GMIJ717N5XhBOrgs9ZsPJ58lA2zBXW4=;24:B/+YBIIHISeHhRvL90C+mtKwFaVY2MCcki+nhyL+zbDJFP1BCzk0j081y9UkIhCKW9OATtQLRNI0uzMCPJ5ntH+KPcecA8/mVHcg+K1X/ck= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB234;7:iyu5DL947JoQmZ9Tae4zyQh23Ekkym3YRocFWma1pD4R7zMabVYpKTw16hPuVeHl09sihY1hES51SLOerbYaKDi/dTsjQGMiIIss0I2n3tQmIRnfc+1hbveqKMLgTfrKEF6xRsDcvYayylb+kYSzDAedOAw0h9M7M1s9s2dSd10Nd93iQwSBb/azdxxAF6ro8F963rKt8573V++FOpV57cpCLvgiWf9kkfxb5pUvpsOl3lcnDRGWxrzjZgztUSLN/BtPrPPIYfAmKKO5byrpk7udXE7KNxtoW4N/TkJDWIa6/8/HsYa5Mwto+BMmc2JQmu6o7tDs5p5mqrF1yAfSCg== X-OriginatorOrg: qt.io X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2017 16:52:10.0948 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR02MB234 X-IsSubscribed: yes X-SW-Source: 2017-q2/txt/msg00150.txt.bz2 Some systems don't provide endian.h and byteswap.h. The required functions are trivial to define using sys/param.h and gcc builtins, though. Also, include endian.h in dwelf_scn_gnu_compressed_size.c as that uses be64toh(). Signed-off-by: Ulf Hermann --- ChangeLog | 4 ++ configure.ac | 6 +++ libdwelf/ChangeLog | 4 ++ libdwelf/dwelf_scn_gnu_compressed_size.c | 1 + libgnu/ChangeLog | 6 +++ libgnu/Makefile.am | 17 +++++++- libgnu/byteswap.in.h | 38 ++++++++++++++++ libgnu/endian.in.h | 75 ++++++++++++++++++++++++++++++++ 8 files changed, 150 insertions(+), 1 deletion(-) create mode 100644 libgnu/ChangeLog create mode 100644 libgnu/byteswap.in.h create mode 100644 libgnu/endian.in.h diff --git a/ChangeLog b/ChangeLog index d43eeb6..01f3197 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2017-05-03 Ulf Hermann + + * configure.ac: Check if endian.h and byteswap.h are available. + 2017-04-28 Ulf Hermann * configure.ac: Determine the binary format we're building natively. diff --git a/configure.ac b/configure.ac index a854013..1e6c844 100644 --- a/configure.ac +++ b/configure.ac @@ -544,6 +544,12 @@ else fi AC_SUBST([intl_LDADD]) +AC_CHECK_DECLS([BYTE_ORDER], [], [], [[#include ]]) +AM_CONDITIONAL(HAVE_ENDIAN_H, [test "x$ac_cv_have_decl_BYTE_ORDER" = "xyes"]) + +AC_CHECK_DECLS([bswap_32], [], [], [[#include ]]) +AM_CONDITIONAL(HAVE_BYTESWAP_H, [test "x$ac_cv_have_decl_bswap_32" = "xyes"]) + dnl Check if we have for EM_BPF disassembly. AC_CHECK_HEADERS(linux/bpf.h) AM_CONDITIONAL(HAVE_LINUX_BPF_H, [test "x$ac_cv_header_linux_bpf_h" = "xyes"]) diff --git a/libdwelf/ChangeLog b/libdwelf/ChangeLog index a332655..29af410 100644 --- a/libdwelf/ChangeLog +++ b/libdwelf/ChangeLog @@ -1,3 +1,7 @@ +2017-05-03 Ulf Hermann + + * dwelf_scn_gnu_compressed_size.c: Include endian.h. + 2015-10-11 Akihiko Odaki * dwelf_strtab.c: Remove sys/param.h include. diff --git a/libdwelf/dwelf_scn_gnu_compressed_size.c b/libdwelf/dwelf_scn_gnu_compressed_size.c index d39b702..6bad8af 100644 --- a/libdwelf/dwelf_scn_gnu_compressed_size.c +++ b/libdwelf/dwelf_scn_gnu_compressed_size.c @@ -30,6 +30,7 @@ # include #endif +#include #include "libdwelfP.h" #include "libelfP.h" diff --git a/libgnu/ChangeLog b/libgnu/ChangeLog new file mode 100644 index 0000000..ca38be2 --- /dev/null +++ b/libgnu/ChangeLog @@ -0,0 +1,6 @@ +2017-05-03 Ulf Hermann + + * Makefile.am: Make endian.h and byteswap.h available if they don't + exist. + * byteswap.in.h: New file. + * endian.in.h: New file. diff --git a/libgnu/Makefile.am b/libgnu/Makefile.am index 0d31e69..37fdb9c 100644 --- a/libgnu/Makefile.am +++ b/libgnu/Makefile.am @@ -35,7 +35,22 @@ noinst_LIBRARIES = MOSTLYCLEANFILES = MOSTLYCLEANDIRS = BUILT_SOURCES = -EXTRA_DIST = +EXTRA_DIST = endian.in.h byteswap.in.h CLEANFILES = SUFFIXES = + +if !HAVE_ENDIAN_H +endian.h: endian.in.h + $(AM_V_GEN)rm -f $@ && cat $< > $@ +BUILT_SOURCES += endian.h +MOSTLYCLEANFILES += endian.h +endif + +if !HAVE_BYTESWAP_H +byteswap.h: byteswap.in.h + $(AM_V_GEN)rm -f $@ && cat $< > $@ +BUILT_SOURCES += byteswap.h +MOSTLYCLEANFILES += byteswap.h +endif + include gnulib.am diff --git a/libgnu/byteswap.in.h b/libgnu/byteswap.in.h new file mode 100644 index 0000000..e7b4f29 --- /dev/null +++ b/libgnu/byteswap.in.h @@ -0,0 +1,38 @@ +/* Byteswapping functions for windows + Copyright (C) 2017 The Qt Company Ltd. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifndef LIB_BYTESWAP_H +#define LIB_BYTESWAP_H 1 + +#include + +#define bswap_16(x) __builtin_bswap16(x) +#define bswap_32(x) __builtin_bswap32(x) +#define bswap_64(x) __builtin_bswap64(x) + +#endif diff --git a/libgnu/endian.in.h b/libgnu/endian.in.h new file mode 100644 index 0000000..c4fa151 --- /dev/null +++ b/libgnu/endian.in.h @@ -0,0 +1,75 @@ +/* Endianness related defines for windows + Copyright (C) 2017 The Qt Company Ltd. + This file is part of elfutils. + + This file is free software; you can redistribute it and/or modify + it under the terms of either + + * the GNU Lesser General Public License as published by the Free + Software Foundation; either version 3 of the License, or (at + your option) any later version + + or + + * the GNU General Public License as published by the Free + Software Foundation; either version 2 of the License, or (at + your option) any later version + + or both in parallel, as here. + + elfutils is distributed in the hope that it will be useful, but + WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + General Public License for more details. + + You should have received copies of the GNU General Public License and + the GNU Lesser General Public License along with this program. If + not, see . */ + +#ifndef LIB_ENDIAN_H +#define LIB_ENDIAN_H 1 + +#include + +#define __BYTE_ORDER BYTE_ORDER +#define __BIG_ENDIAN BIG_ENDIAN +#define __LITTLE_ENDIAN LITTLE_ENDIAN +#define __PDP_ENDIAN PDP_ENDIAN + +#if BYTE_ORDER == LITTLE_ENDIAN + +#define htobe16(x) __builtin_bswap16(x) +#define htole16(x) (x) +#define be16toh(x) __builtin_bswap16(x) +#define le16toh(x) (x) + +#define htobe32(x) __builtin_bswap32(x) +#define htole32(x) (x) +#define be32toh(x) __builtin_bswap32(x) +#define le32toh(x) (x) + +#define htobe64(x) __builtin_bswap64(x) +#define htole64(x) (x) +#define be64toh(x) __builtin_bswap64(x) +#define le64toh(x) (x) + +#elif BYTE_ORDER == BIG_ENDIAN + +#define htobe16(x) (x) +#define htole16(x) __builtin_bswap16(x) +#define be16toh(x) (x) +#define le16toh(x) __builtin_bswap16(x) + +#define htobe32(x) (x) +#define htole32(x) __builtin_bswap32(x) +#define be32toh(x) (x) +#define le32toh(x) __builtin_bswap32(x) + +#define htobe64(x) (x) +#define htole64(x) __builtin_bswap64(x) +#define be64toh(x) (x) +#define le64toh(x) __builtin_bswap64(x) + +#endif + +#endif // LIB_ENDIAN_H -- 2.1.4