From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 122327 invoked by alias); 4 May 2017 08:26:57 -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 122302 invoked by uid 89); 4 May 2017 08:26:55 -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.6 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.6 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-DB5-obe.outbound.protection.outlook.com Received: from mail-db5eur01on0111.outbound.protection.outlook.com (HELO EUR01-DB5-obe.outbound.protection.outlook.com) (104.47.2.111) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 04 May 2017 08:26:53 +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=Q9TAKJ0R3YqO+4lZJdJd1TK8Y4+q2VCnuqPZq6LLoes=; b=HMKEI2MRpFysqWBWpMXElCDI0EcOBA24sopUe/nD1/t6s3k4sNu0N72ryY2VX/Mowo79TtxmIlrSMckzc4oJvbG8gpjm2+LQ0FFwSowSP1KDiSvsuziWg6fJA8hNtalM1bn8oHjgJs867RDAV2oQ9fKz94UdSeKu9ptiP+pm7/0= 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 DB3PR02MB233.eurprd02.prod.outlook.com (2a01:111:e400:9410::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1075.11; Thu, 4 May 2017 08:26:53 +0000 From: Ulf Hermann Subject: [PATCH] Add sysconf replacement for win32 To: Message-ID: Date: Thu, 04 May 2017 08:53: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: VI1PR0902CA0020.eurprd09.prod.outlook.com (2603:10a6:800:d7::30) To DB3PR02MB233.eurprd02.prod.outlook.com (2a01:111:e400:9410::17) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 0d35e210-40b9-4397-04c0-08d492c751ca X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:DB3PR02MB233; X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB233;3:pL4jh+NfwqIU9W++LTWocGuO73uHQFLv9gRY6cOIRVNuZGlYuIslCPAOWXwyY6H0lfb9ma2CW4SwvbpN+S0XW1fI44EFQQpF/V0AKp+igOPvLQ14JMCiwVR6UZpaWYTofTjDS0WRvg11BuuwK6L9iROMb28rQrCL51qQuqX2CqFfExnta3h94fcMMFI7rH2nWqtaz4wI2vmYSHsFxoSS3LwqLCtgeoI7uPMUylYbgYY9M35LrpmxQHDW2hSMIt8uMMiBkHK23gGuVMf6BgHyDBlwUi/R6G51E6d+VaX27LlbYCcJLY2pGnpRrPVhmiTJxXAQ/BMH+7ldMCnsn+JdDQ==;25:5dcPzqiHv4VPD2MYuIanpqc1M3B9q1GlOkVAkhjEJfPOsyChNquHwKS+M1IyLghZocy2nBOjW41K+r2AWJQpi/rdrqXYDmp4QyYOx3IePufg7Zq4Pv9RQTOhu35ptbcr9++E+r4Mi3DoGwjIlI3gDuABtEaDoUvJGqkmeqgu2RMWIL1Nv5U+cQ9n8ir8LnUQcr1mlRUW0v/F/v9tbDMFznQmKc05N7hxcxI/AgBmd8mJxYP6N3/xaA0WyGSQ9KI3gM7qizHGmdL251+yxieZ0CyB9Cm5WDEchcJj6al6bfxMlp/wpq2r71sGe8SCZzypHZe1wTu2qCRB2JHZ0eRrGqXnYGMDQ85hD5JWKDdaTHbdgu1d2hk8ftIx+fHl6X0De4I6x/YETlaELvDbfkkHRQXHSoTOrNtm9vL1mwc3LNL813NJ8KYG2/yDU9H/ZwAxjh60laxb1u/YKHNYlxtWmq1C1SPBwPX4rnQZuzGjDVo= X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB233;31:yWUTed+5r2cOWVYP2bTjcIWi669IZDcl/Szlr3uBpRa3Eel5Q+kNJgNt0eotsb07b3mnKxZYC9O9jSvHu0q2SK8DGIJU1RIQrypTDTJyNknSFCVv0r4JOEQTlooyV3ibVxfFeG+Mge6LGHFcOltP05RviC5aKomvE1qzRPdtiX5jsL6AS76Rq0UgvD8m8KMEc0vjtAPBk8WehReDwJpMRFizZ7l+8mNMVDeD94wEC4sWuG/17z1piNOswV6fqqQufj1rQQW5jd4L9uhmdDH+Pg==;20:KWoiEiiiauIbh9KXerYOkOLJkA9diOElOL8qVAcob/p3t8JscdstkSKr2YGEWU3KpI8XZaflnxAa2E4rLJDjPE5W6rD3VxnOELdbyTgQehhGf8OgX/lPlGHbmMeDeWbelApBu1t8U5hjalPzQ6nf5EN6PaLRnOT5rjwOxNleQ6jQlD5XrZJ0AKufWd9wRu4Qsp3qDBw/Y+ZstcVWcVEBGrIgYqzgMltLhJQh9ZrPHRVj6yxc7aOrpV7RU4srPsvg 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)(93006095)(93001095)(3002001)(10201501046)(6041248)(20161123562025)(20161123560025)(20161123564025)(20161123558100)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123555025)(6072148);SRVR:DB3PR02MB233;BCL:0;PCL:0;RULEID:;SRVR:DB3PR02MB233; X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB233;4:yUBwhS1st+NTiHmE+xpdAlo0MdMMlc/UW3oljke3t+u8f/x+0nmZytWZXfARFhhTCI0qrH3Wol3Jesvnd/1E7g8+CVEokwuWC/73wy+6aFY2SuNGzpuoGjC1hhYeq3e8Gp5uimvi00qpJP1MKRH5vuNInwnf0a8kKktYoHMAURrvQxXwschgTtlDt6CStcpi+B4K3zOjl4rJ3OOjxziwuj5s9aPY9EED4XbUKjdbHAaiVX2obLL4EDW6Dx6X9JzkHLaxG3HJ6nYRRkii0GF+pSnpKJ19EnJoV4a89tEv8CwaeAR0c30tYS5Fnty+47/6GVJMjBtG1ydJr8sVWc5/VHqZKdL1SaWbkMp3+9lVTbCxqF1rgaGwUoGvvwZH1iQuu6+z02/Qc8TfXxjqEFPK8iOE4oRiBIVmpwRpDdRB31+EZC9sw+wIe2k+5Avee2Btgb8E5PsNzJDI1/nTP0T+DQv/rOwxiE2lCOhElbbM3L1xlM+R1sdmyNKPGncViqTkFQCIMuXrXkhOL1tRQZaPo8bDmzFoZej3Knb5SkTeZA23wwqumcu8cE7Ei1dswyleohNQBDatf1R5qw8RTHXo0Boz8OS/j1JfSpiyiAqEk3Edg/UXV9Bz/B5bmEYC0Dd1KRzRLUZDBlOgf65coAf4nR2n5dt3lneVz6wXk5S0CSQV0Nyc6kGI77BcOl0CCzv/ik4mcbq7STwWL4GQdQcoyIVElAbrOr0Y1WZZeLQ+Xhju7a/lyoLWlcUSIjvyKf+bGuZXSmmi3axF8IDla7LKqHwSkA5+zcxWXfp2rRpcYuScZbjowIq0wuePEz6qNf0dJWFGCoLvUFy9MNtWy+bpRxkIOC4CMycg087W6kvw/jA= X-Forefront-PRVS: 02973C87BC X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(39450400003)(39410400002)(39840400002)(39400400002)(377424004)(7736002)(77096006)(36756003)(23676002)(31696002)(6486002)(8676002)(50466002)(86362001)(6116002)(2906002)(5660300001)(2351001)(3846002)(53936002)(54356999)(50986999)(305945005)(64126003)(4001350100001)(230700001)(33646002)(6306002)(81166006)(25786009)(575784001)(6916009)(83506001)(38730400002)(6666003)(47776003)(42186005)(110136004)(65826007)(66066001)(478600001)(31686004)(189998001)(74482002);DIR:OUT;SFP:1102;SCL:1;SRVR:DB3PR02MB233;H:[10.9.78.56];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjNQUjAyTUIyMzM7MjM6ZmxCU1pKL3JNS1N0VUpRb0xNcmVCWFhORWZS?= =?utf-8?B?dUpzUXNRSGs5UGpGQjhYb0tXOHl1VHN0cmVpQnZzb2hBSm01cE5XTC8yektL?= =?utf-8?B?UVRxbzRjUVVIZkZmNFVFSTg1V1BPU2ZTcjdXODBITTg3aEtWQVFKenNRRjhS?= =?utf-8?B?c3NjTGhZTTRZbzZlOTJjOXNMRFVDK1U0ekdySFJOMW51MzNzaW00MitVbmVT?= =?utf-8?B?bGRyTWVPTWJ0WDhycVJnRG5oRU55cnN6M1QyQlN4QUROVGdPM0NSTFlpdC9o?= =?utf-8?B?NmhvMEE2ZVBHYzhBZ2ttaksxU2V3eFlhL3E2TGFjTVRmMWxxQU9vMiswNmx3?= =?utf-8?B?VTB4SndqRFNJSG8zRUQwUGtDV2xsVmZqcS9HS0UxL3RzK0d5eVIvUHgzbmtG?= =?utf-8?B?bTczYjVGNUxjOWlYdlh1czkvWkNkdkJ3NDM4NUVxUVZOekhRTHIzOVd3S1V2?= =?utf-8?B?OTNDWGJ6WSt4bEM1RkhjNTBxTHI5anRpN0lxWXFubS81NEdtN0t3S0pZWEo1?= =?utf-8?B?RjdVVWcwbnF2bXo5NVl1c3Vyd294Vk54Q3U2REpvQkdBNEZuSVU5Ulg4YkdG?= =?utf-8?B?V1lqN2tKOEFEZzlBWDJEWFQ5cWMvRjZmYVU0WStEd1YxM21Dakx0ZE5EbFVz?= =?utf-8?B?VkpnUmRPRU44TXN6bDEwbmNGM0tsQWJ5c2k1Q2xKb3VsRW1iMU9WZEN0KzJC?= =?utf-8?B?cDBSOFhRbkxwTHBmT2NadVVoZDM3Q3NJbUtpaVVtM0ZuamVhZExJOWhoUnBS?= =?utf-8?B?NmZ3aEVNcHFNa2JXUUljL1BQejNKUmNHNG9DRCtpYzVVcWs2L05aeDRzWEtK?= =?utf-8?B?d0F2M1FSR1o2cDBJUW54aGtEdnJpcHcrQkw5Y3BKaER5VCtNc0YydllqY1lt?= =?utf-8?B?OTRxeEI2ME10VFZaKzhGLzZUNWYwMlhBWHFqUmVsc3k5Y21lYWJscERZRUND?= =?utf-8?B?UE1neHR5NmdEQ1BvUWFTcFVmWWFjOWRDU0F3RWIrZ2F0VEVEY09pSXpCenY2?= =?utf-8?B?ZkUrNjJhME0xV0FwUENnZks4NGZMc1dZLzE5Q3cySnhkVldsKzVzdXBRZ1Y1?= =?utf-8?B?WUt6RGZaMFBiSXhzS0poOW5jSDFZSFRrZUN2dTViNlZRN29KT2xOUWZ1bVdl?= =?utf-8?B?Uy9FRHZFQnJUWU1MZXY2RnovL054c0gwTWRrbUNqMm8xS21TTDlmK0YxQWxz?= =?utf-8?B?d2QvODh5MWdTZkpDR3QwMzc1QnVBMXpPUjZ2QndQa0QrTVFLUXJGSXduT3Br?= =?utf-8?B?ZFRmSFZNZHpnMytLYmoyQW1KaXg4clljZ2FDWU1sY21pV3BlenAzb1BxVDl5?= =?utf-8?B?WHM5bzAwbkI4L2VGeDA1eVpGajJzNEwrVHVEaUJnV2ZSNW9aeHUxd1RlU3RV?= =?utf-8?B?dTdWMlRnc3M5YmRHRmRjM1RlQTRlRmZYWDNxRUx1REpTUk1ualN4V0RIVGhZ?= =?utf-8?B?L2xpcUdnK3lTNDR6TkdrRXJNUHlFZnZLK3ZPUkV0ZkFWajZRci9WUWlkcGdx?= =?utf-8?B?azlzZ3ZoOEhXaFpvSGRiaXNybXNHWDVEczM5ZUdQMDJkWlhZM01XdURBQ0hw?= =?utf-8?Q?2P/sTepWb16OV5Gabk0AqDgQ/YyUSBRVfyERsGdhK0Y=3D?= X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB233;6:rTLb9vjlYD1sQ09d3z1CRNbS17oFM66jt6scUEqSPalVxp2SqaXOFCJZg+4wO/23LRLsD+1EFcAJMRRmsVJdmm3QT6HjWP5V0dTiU8/tf4HBmuqlFW+mAKZr2Wo/CrP+eJU/Bg9BjyIB2xEdvVnIkDlN6px4PhPsb5i4ekdo4oJCthgz3m9s9jPUS+e0F707xJImqK5C0f4TCKa2FvUe3EjYEHkENxpPtGcur35BTkEc9DJ8fLGnpUKcfpSz6aAoTpx4MKFXPBnCBsHaCb61SRby+VHyNV/mw9bSoalTBdYCX3C6VVV9OjrCW1L1N94BA7Zyz4wjk8ZSS38OYx0NYl7kfNU4S1nluBQELP/yO+W4qCxzyYvHR3TcFhTCjbLuSMPENoSnMBZKZiIG7TiXN3I737gAlsl2p9R/5XObvJ8/V38LFs+7zdHbu8EvG3q7o7/oNya9I/h8oqtJ0qyoBFNx1ZC4O044YJMvwQi3I4ByL/Nyfjn4budGqFMk6aNKhBrPeiOhFJEqsvWHvO12sA==;5:fK9iuqjq+YyFdvgcvGPKS7b5kZely/w1NgeDQ1yjyG11h6BCfV4rPZX8rgpFd3nw4cNCLaEjIe1Q2qJO2njY5KXXVt0WKx+Rj8iZUUooBnkAZ6cD24FRkqoMXzyxPFA3AW46+57d7su8SFdSO6BOOg==;24:nBce+LyoSAt+icmOkpBMJAP2uOgnr0PR42cwu22o5wH3jndgsBobYFwgcTNf8jOckqqzMJNG0cQjCPZO635zkgSZyIxlVBLg84KxDozsbHs= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;DB3PR02MB233;7:2E172o8Je+9SOA+j4us8pkCWxwZGKsR2M20IOoDqS2xXdgAlFI8CpsYg2W/18L7O200BcO1d38lCcToIQ3uhC4iFtInzanpicKHbTNxE6I2cemWXd+2tjVnyw/+sXtQbJffywogs/gO5oylCSH5SdpAFpsgXMr4WkwovsSGgJyq7AiJA3euBMAmsE0+qM2XEHhBOXDVc1+pbe3ZYx280iHXx4spNWl1+jRfcMA0xB0KXKx6HnEbCHh/cOcBu5a7xYq7glQ/Fka1fMYbRfHjAGxwOAfDvQgvfnl9gGvrAujN/RZbGcxIb5WIG3UdH/EkXYtY2g59MEP8rgj0gLkdNSg== X-OriginatorOrg: qt.io X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2017 08:26:53.0300 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR02MB233 X-IsSubscribed: yes X-SW-Source: 2017-q2/txt/msg00154.txt.bz2 We cannot get sysconf() from gnulib and the only thing we need it for is getting the page size. Therefore, of the various possible sysconf parameters we only define and implement _SC_PAGESIZE in our replacement. Signed-off-by: Ulf Hermann --- ChangeLog | 6 ++++++ configure.ac | 20 ++++++++++++++++++++ libgnu/ChangeLog | 6 ++++++ libgnu/Makefile.am | 8 +++++++- libgnu/sysconf_win32.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 81 insertions(+), 1 deletion(-) create mode 100644 libgnu/sysconf_win32.c diff --git a/ChangeLog b/ChangeLog index 2c0e34d..71c73e5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2017-05-04 Ulf Hermann + * configure.ac: Check for sysconf() and GetSystemInfo(). Add a + declaration of sysconf to config.h if GetSystemInfo() is available, + but not sysconf(). + +2017-05-04 Ulf Hermann + * configure.ac: Check for sys/mman.h or alternatively MapViewOfFile(). 2017-05-03 Ulf Hermann diff --git a/configure.ac b/configure.ac index 6a2f991..2d3ad04 100644 --- a/configure.ac +++ b/configure.ac @@ -557,6 +557,26 @@ if test "x$ac_cv_header_sys_mman_h" != "xyes"; then fi AM_CONDITIONAL(USE_WIN32_MMAN, [test "x$ac_cv_have_decl_MapViewOfFile" = "xyes"]) +AC_CHECK_DECLS([sysconf], [], [], [[#include ]]) +AM_CONDITIONAL(HAVE_SYSCONF, [test "x$ac_cv_have_decl_sysconf" = "xyes"]) +if test "x$ac_cv_have_decl_sysconf" != "xyes"; then + AC_CHECK_DECLS([GetSystemInfo], [], [], [[#include ]]) +fi +AM_CONDITIONAL(USE_WIN32_SYSCONF, [test "x$ac_cv_have_decl_GetSystemInfo" = "xyes"]) + +if test "x$ac_cv_have_decl_GetSystemInfo" = "xyes"; then + AC_DEFINE([USE_WIN32_SYSCONF], [1], [Use sysconf replacement for win32]) +fi + +AH_VERBATIM([USE_WIN32_SYSCONF], + [/* Define sysconf(3) here if it is not available from a system header. */ +#undef USE_WIN32_SYSCONF +#ifdef USE_WIN32_SYSCONF +#define _SC_PAGESIZE 1 +long sysconf(int name); +#endif +]) + 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/libgnu/ChangeLog b/libgnu/ChangeLog index 60a049f..aa0e603 100644 --- a/libgnu/ChangeLog +++ b/libgnu/ChangeLog @@ -1,5 +1,11 @@ 2017-05-04 Ulf Hermann + * Makefile.am: If sysconf() is unavailable, but GetSystemInfo() is + available, compile the win32 version of sysconf. + * sysconf_win32.c: New file. + +2017-05-04 Ulf Hermann + * Makefile.am: If sys/mman.h is unavailable, but MapViewOfFile is, then use our own implementation of mmap and related functions. * mman_win32.c: New file. diff --git a/libgnu/Makefile.am b/libgnu/Makefile.am index 5af121a..05a8f61 100644 --- a/libgnu/Makefile.am +++ b/libgnu/Makefile.am @@ -35,7 +35,7 @@ noinst_LIBRARIES = MOSTLYCLEANFILES = MOSTLYCLEANDIRS = BUILT_SOURCES = -EXTRA_DIST = endian.in.h byteswap.in.h sys_mman.win32.h mman_win32.c +EXTRA_DIST = endian.in.h byteswap.in.h sys_mman.win32.h mman_win32.c sysconf_win32.c CLEANFILES = SUFFIXES = @@ -69,3 +69,9 @@ if USE_WIN32_MMAN libgnu_a_SOURCES += mman_win32.c endif endif + +if !HAVE_SYSCONF +if USE_WIN32_SYSCONF +libgnu_a_SOURCES += sysconf_win32.c +endif +endif diff --git a/libgnu/sysconf_win32.c b/libgnu/sysconf_win32.c new file mode 100644 index 0000000..34ddf4b --- /dev/null +++ b/libgnu/sysconf_win32.c @@ -0,0 +1,42 @@ +/* Replacement for sysconf() on 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 . */ + +#include +#include +#include + +long int sysconf(int name) { + if (name == _SC_PAGESIZE) { + SYSTEM_INFO info; + GetSystemInfo(&info); + return info.dwPageSize; + } else { + errno = EINVAL; + return -1; + } +} -- 2.1.4