From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 73748 invoked by alias); 4 May 2017 09:19:19 -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 73677 invoked by uid 89); 4 May 2017 09:19:18 -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=locked 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-VE1-obe.outbound.protection.outlook.com Received: from mail-ve1eur01on0122.outbound.protection.outlook.com (HELO EUR01-VE1-obe.outbound.protection.outlook.com) (104.47.1.122) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 04 May 2017 09:19:16 +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=Q8kapyvFH2tcD56KrdpnAB/OMD+0Fq/JX83UQMOuLQ8=; b=PRQzZrSauhvmzf3wy3NyA+M8BhZ9Rrd/NLNnQ6yGDiK23XOuhC4xkV/LO+2z7tz5Z94OxJsZ3khuNHONh4PazjoVHo+0gVeqob9yCI/gbjZuhKw0mBUoYdOVnLyDpWpZPjfYZL/IBkdA+XWin2enVO/CezRK1XcAtmqvcqe4jXs= 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 AM3PR02MB228.eurprd02.prod.outlook.com (2a01:111:e400:8810::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1061.12; Thu, 4 May 2017 09:19:15 +0000 From: Ulf Hermann Subject: [PATCH] Define unlocked io functions to locked ones if they are unavailable To: Message-ID: <8e62b4c5-7e06-0afd-e54a-7ce4cd80ad42@qt.io> Date: Thu, 04 May 2017 09:38: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: DB5PR03CA0073.eurprd03.prod.outlook.com (2a01:111:e400:598b::41) To AM3PR02MB228.eurprd02.prod.outlook.com (2a01:111:e400:8810::26) X-MS-Office365-Filtering-Correlation-Id: 4cfd3e4a-2097-4405-5087-08d492cea2b6 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001)(201703131423075)(201703031133081);SRVR:AM3PR02MB228; X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB228;3:1GfD0sSVpxZaah5se29quIj18TAug058qsLHGm2Us9gkOdHrbJfZ0PhCja3RkQ3HE4FwPKSVMN6kqgPtUYhsQQGhw2Qe/x5NFGQA4p2WyOwWVBPnp7c1v+3aiIpYKwIpTJjNtKRu0TuQFZF/rXZxiBP0vEQ/nFKdzsBPkMukf104gL9mRuzHCpwztTkEirFJ/TMKe6OT5+y3XP8WerYi7LAypNN6DnSzIQUqPHQZJVugmlpXXxLI4uCuttOOxDYlueD71dbH/gU48r8kkc9diRHJ2r2vV42Eob3tFwNZhxR/4o0ckbw90nGgYMHwnQH6gpkt8plhcMw94y/wSX0Xcw==;25:CxLIlDju5BOTHtQFJ3tUh+sIgj830vax7LpOC9WXBqz4amlJ1RjdgQZ+d8rewERaUOJkfdW2LZZuVnY2I1odDLBkUkDA6DfNCAVzXAfhKgtQihXlmo/jGCnWGUmjg4W9nGzq66WN3whj50sUPGZSoLfYMPbWy4Yy6+erbyAy+CyWZb+sSzvD0Q9S7sAe/8be5vkxfHirZnAF9UrqAbEDs7yjGONQzakWaMPQe8WJBjZ7eVIUgtQIB8JRsv1wuF7fCOGJf2XJ+QoOK398K/ZDIDiUk6wfyaKoX8lDZQ5tdNbpjda69jY2/ZU1uVu2HHfPC6vHlzbXOjvB0Dt1upbq8Sj+uXEcjDnjmElZJa4+FIzuvI0WpX4pzIXgZn4nVVYhjaEV153BWZuTRIqGmr40aORj1TX+uNE1smUpvAnMJIS8KBjmqL9ZfK4UDSZtLA1V827JHlLjAiSzpB2HRijlLQ== X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB228;31:m9ONWZ2c5yJQ7CZFAxYoUK9vcF3A6rtjXs6KhrdP0OsUSp72NugVFSPAHDEh9NC4Ko33yw3/TtG5kiegRKCKzKbB5Pgf2nMKzG+O/D2m4YmBRpWvSAbR1rf2RYj9BDRNZAwo8FeOhQLAu61qjjPkPEQ4mSWxXqclRZsMBYL18/PErRZ0XOJcQHDfj7P0PuzBk+sRrZtoF50TqDDEVzt1TQWDIak88pF5dBRrdoLMg9qDiBmS+S1xUNGFFuNPC3IRuIwckp9Mvzh08J94nlm1tA==;20:6812OTrJWPPAAe04cNiCeTRs23c+DeWWN1NJjW/3zbhH/I0HTysyaAnEgM9VelyV91mv4XNjXS2fk1qzxg3rwG+UTw/Gok67JrrEP3D52EHjseo+1+940bub1e3JFLxCYhgVgBIuibk4JQqpPEpitqXjtuo5mEMWMcWxafXD/XnwmH/H+HoyEhETRJN+fyYsvCR7aFs0jv4h3qY5IxPB231ilxYSpFxRWmyMrGGPDZnlMlQPnZTSSRQDXhIXYsnY X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(6040450)(601004)(2401047)(8121501046)(5005006)(93006095)(93001095)(10201501046)(3002001)(6041248)(20161123560025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123562025)(20161123564025)(6072148);SRVR:AM3PR02MB228;BCL:0;PCL:0;RULEID:;SRVR:AM3PR02MB228; X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB228;4:OLBUqDoeEmsVpNk1/J4A5oZA/Qwrqa+LMWAZw2cZOMFdLJfZ08io9Ezbp4zNepuOMD8pmAc2+74TP0U2JN15aL3NEd/WZCjfugOejSPSdAxaM8IeqXyNqw+0/oGnqexGSvqhY3SMRXHAyJM3Grm8s/wmrIqIQL0YbwctdFbYpKkepQZ0EQ7kMEdHO0UEtzi+Cs659Eb5LYk8AijHW+ZwPL3sbQ6K31ReK5DP7xSqv5GdmQwotng5EwPEYpZaGQzm6aQKtcU7TFDq1uH/hAyOCDEMBtY9cxfLgCZK1J3gb64Q+cXht9IUaayp46vhUaODy0f/xCNV9+hWDx5mmCVEbZwrpwqA+s6Cr6stWOsvbinnY88evlUiC56CZtrzgfoq1a5rWKKhRznHgUosttpu7/0JywWnvvBgOcMJ58+r75QjCncjgs+fzeWNNHF/k/9BJgC7mh8MCueQ4U6FgMl+8n+0ec1wgUI1W6m98PB+9VnPCm+EbGqVeMtiW7lMfQ0HZdQ6LuxWa5jqoF2YEz7FcuTJ1+2GoaPaAKplYNd3eJpP+vY4uZ0oX9uRqpnI3gL0hhxNeZMh9dyLr9oCDxcZxJzK55tGTj1mwNcUug7qxfSTqy7k96hWwmuG2zNMIt5ptiCN6YaaSHojJTxwCxj011Ieolec/HnJtiQmC2zyjhy15Bqn/PBECHyVSMWc69B6C+TNsZno2T+G3zOQfEoTSZ5YHL6nvjYZ7DbZCX9MNz3ob31/8TMbWDlFae5UHnAOl7LuQFU20qGyzlPZorH1mwGO+55IyeSBekZwVN+JC4Y= X-Forefront-PRVS: 02973C87BC X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(4630300001)(6009001)(6049001)(39450400003)(39400400002)(39410400002)(39840400002)(377424004)(65826007)(33646002)(31696002)(8676002)(110136004)(31686004)(38730400002)(81166006)(6486002)(77096006)(86362001)(50986999)(305945005)(7736002)(42186005)(83506001)(50466002)(64126003)(53936002)(25786009)(47776003)(2351001)(66066001)(189998001)(2906002)(36756003)(3846002)(6116002)(54356999)(74482002)(230700001)(6916009)(4001350100001)(478600001)(5660300001)(23676002);DIR:OUT;SFP:1102;SCL:1;SRVR:AM3PR02MB228;H:[10.9.78.56];FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtBTTNQUjAyTUIyMjg7MjM6cWRMYXJJR1pUb1NRdGpUQjhFUEVzcjl1ZUFH?= =?utf-8?B?bmx0bU1vUy9kdUJ4blpTSGRHdlBVajFWTytlRlhFbGRKYmRqTnRobWtEV0pJ?= =?utf-8?B?ampPVllXc0RDc1VWMEFpVkVsaUIwUmpLUlNPMG1WemZ0Nis2a1AwZnQxSXB0?= =?utf-8?B?TlIrSGtyQTVOZVB3bnJrdnpoRWtYVmR6Z0h2cU1LTGdNZEFPTjZGSVhQdmpO?= =?utf-8?B?dVJQWlVmSFAzd25OUUN5MlFUMm91SlNYOXdoQ1FCQmtmTG9NNkdPUzBnSUlq?= =?utf-8?B?K1Nsbi9zWHpKMHNTaFBZWmFKZ2UvcEhNNXlOQTVxaWhUYjJQRjAvSjMySjBO?= =?utf-8?B?a1RZWUw5ZHZIblk3dmFjSndrWFNZbTBJWGNlVE5NSHNjZ0dIYU9SZERVdDln?= =?utf-8?B?cTd1UE55S0RyRXdOVUhLNUZySEpTOVpIOEEyVVk0TWpsTWkrVUF1WEZoRmly?= =?utf-8?B?UG5NRW9tWlRDUGdUL0YvOWNZT3dMakF1dXBXTFZDSURNNStnakJTQUozY2lo?= =?utf-8?B?aW1LMWhTOCsvY0oxVjZETC9LVkl4SVQ5WGt5R3dwU1NGWWRaL3pEZlVyZ2hH?= =?utf-8?B?aHBIV2dQV3p2SFdXUFlLUThvaUt2TnAvM2tYcWV5czQ4TVM4WGtRVTVGUU9p?= =?utf-8?B?NG5TT2VwOS9hK0t6OWVuKzVPeVlrL3Z5UDhSM2oyRlFzQk5LL3ZuNlNlRzRN?= =?utf-8?B?L0t0NWhwMnZyVGx3ZENuYXJVTmZURGQzREFKdzM3L1hBZHAzYjZjSDJKTC8x?= =?utf-8?B?Ynd6cEdKUVl2d3EzaTVKYUtnQUJza1YxdXljSFovcmRjeFR4RUVlSXYyZHMz?= =?utf-8?B?bGo3czVTc1hPL1dhYVEwUVB2KzJSUVVmL0JucHFjc0lHd2ZndXVFY0MxTEZ5?= =?utf-8?B?d0M3Q1VVVyt5ODZJKzZvTVpUdXEyZXVVVGphTXBUckFNOTJOTlZvRU1wems1?= =?utf-8?B?SGZzYXAzdHpMdzBZQUY0QmIvclpQc0FnV3liS3hSLzlYZ0Q4SjRIVXZEZ2NP?= =?utf-8?B?YWNnM0NjdFFZaU5EZWYxMjZ4Tkp5ZmZzTkhTK1NPK0dnUnkwY0lPcHkyeXZ4?= =?utf-8?B?Z0hjU0hQczczTlJ5OXp3RWNhcUxlSXhaWGtQUVBDdWtUZ0xkSm5pbHJuY0sr?= =?utf-8?B?KytSeUZocmtrVGR0MExjM2FUeUliU1NNbHM1YWY1Tk9NWE5SeWRxa1E2eE4y?= =?utf-8?B?aHUzVVBnVE03WWR4c1FMTkt1WlNha1owdkpxdVNWUnlEbFRmY0N2TkpCMkJr?= =?utf-8?B?ZTVoQkpxaENpa0o5VVprYlhQczcxU1VWcy9ZdzErWWFKUDFRMDh1ZEVNV3Zy?= =?utf-8?B?V3EybXJGS3RoUnNpTmdtckg0TDh2OWZLOXJ0V3FJeWZFN1Ewd1dXcEdERmdL?= =?utf-8?B?VWYveEhJV05WQ0JKWDdMd0Y0Sm9Za21MWWFndVhmekFhMmxvN1UzZjdSVVdH?= =?utf-8?B?emF0N2c3VXY1bUtFM09VRXV4SlZJb1dwQmZoYXNBdmc2M0dPNzJPWTNYNEll?= =?utf-8?Q?LSBt1k1Mq86aXzE5plSsB4bU=3D?= X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB228;6:6URG4lh/1zQJfHq+9HvL6Kr5CbIjxiws9GZbDtKFiVHUJvwrb5YUJDFfyxxuEcKTfmjvdwrEbVnIbpIFOhzir5uZC5EriY3h45VWDFqhysfe5dAic/yajFZTyZK93eWpXkI83qlgAQ3mhBGVfW7eLJu9OSz3VgHpT85kv671u2KL++LL/DCHHNXP+VeoSpUkS4GUvXRtQxYRp5C3LJ0NoHtbnGhMFjxR1D/Yr66mPvQVFlqi2pRos1UpQCAMdggwb5p6uM4GtWQpPQC7p3GK6MrYoeQ0DcuTjX5g4CrRMWQtsn/lu83kVFBsOXP/w9wFcwFuM/SVG1HJ34hZdpUBbGB5zNpBMIAE8EbQgVOK9nAmaczv4lIqE+4sYahTwQ8IIbmKjS3bCOPGBj1iE4R8vf3MZXVl4DdtiHcqIx/fcbu0S5S4YDw3hzHysXQAe+WOhY9f8PmyZMhsQH5s9Tzl7qLzBMwUg08D+upEtIz6DJtRpPym3lxVNRqJ6tiojThV/BM2mwrgWQ+FZbkpaH8nug==;5:hKOCqYWVstSSlshz+1U0lexvYSo6SUkvGcmnva+5ahMg2AQ+pAtKrF/gIzqh9IQZkmueSw6EY5Z/7Uul2dV/3/D50YIVXryqMW9ZU1pVJRKBj/9MhxiGi3tH8/BD1TamIoq31pTx/XctZmoWQLD0lA==;24:4tsHKKpBNkYr14VQ2env0jrVRVQTHTM3T7uNpRsKyjqI6ACMsePNBEfPphr7S36GMncMRKCUhGng82dFENajbxS8sPxpc0a2r00sDn8tKDE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1;AM3PR02MB228;7:ldNobhGgllmkjXMluT158yCycK0Llv+2C3a4/aXVdIWUSKVz1aXqRpcMCbizDpkyTd0yuTSUj8TtUBk+n/0dOq/KYkjU4fq2kd9yjNCkmnbUO06Zk5nrctS8FyPdk/7KhSvuLXsIb9lZzvidB+Q4C6oaOVJofw+Z5hovD20cETeV9Wxj6oB8uLmddst2sDJYrzKgnNckW0VilcVgsOE8r93tgjoz7nF3Md6T4Ny5uNj+ikxfDWWr4MG84ken8yRZJH681pe7ERAdAMXQA1HbZ/KTfcFSuVOv/1rNcED8uKC5zGHkgMnr3g2wKOEjGqeDEVFc3m0pGsTTR9MAtuOo3Q== X-OriginatorOrg: qt.io X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 May 2017 09:19:15.4576 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM3PR02MB228 X-IsSubscribed: yes X-SW-Source: 2017-q2/txt/msg00161.txt.bz2 The locked IO functions will still do the job, albeit a bit slower. Signed-off-by: Ulf Hermann --- ChangeLog | 4 ++++ configure.ac | 4 ++++ lib/ChangeLog | 5 +++++ lib/eu-config.h | 28 ++++++++++++++++++++++++++++ 4 files changed, 41 insertions(+) diff --git a/ChangeLog b/ChangeLog index d43eeb6..29013e8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2017-05-04 Ulf Hermann + + * configure.ac: Check for unlocked I/O functions. + 2017-04-28 Ulf Hermann * configure.ac: Determine the binary format we're building natively. diff --git a/configure.ac b/configure.ac index f04a6c8..0432bb1 100644 --- a/configure.ac +++ b/configure.ac @@ -590,6 +590,10 @@ AM_CONDITIONAL(HAVE_FEATURES_H, [test "x$ac_cv_header_features_h" = "xyes"]) AC_CHECK_HEADERS(stdio_ext.h) AM_CONDITIONAL(HAVE_STDIO_EXT_H, [test "x$ac_cv_header_stdio_ext_h" = "xyes"]) +AC_CHECK_DECLS([feof_unlocked, ferror_unlocked, fputc_unlocked, fputs_unlocked, + fwrite_unlocked, putc_unlocked, putchar_unlocked], + [], [], [[#include ]]) + 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/lib/ChangeLog b/lib/ChangeLog index ecc6179..321513c 100644 --- a/lib/ChangeLog +++ b/lib/ChangeLog @@ -1,3 +1,8 @@ +2017-05-04 Ulf Hermann + + * eu-config.h: Define unlocked I/O functions to locked ones if they + are unavailable. + 2017-04-27 Ulf Hermann * eu-config.h: Define attribute_hidden to be empty if the compiler diff --git a/lib/eu-config.h b/lib/eu-config.h index e69b213..6530044 100644 --- a/lib/eu-config.h +++ b/lib/eu-config.h @@ -206,4 +206,32 @@ asm (".section predict_data, \"aw\"; .previous\n" # define funlockfile(fp) /* nop */ #endif +#if !HAVE_DECL_FEOF_UNLOCKED +#define feof_unlocked(x) feof (x) +#endif + +#if !HAVE_DECL_FERROR_UNLOCKED +#define ferror_unlocked(x) ferror (x) +#endif + +#if !HAVE_DECL_FPUTC_UNLOCKED +#define fputc_unlocked(x,y) fputc (x,y) +#endif + +#if !HAVE_DECL_FPUTS_UNLOCKED +#define fputs_unlocked(x,y) fputs (x,y) +#endif + +#if !HAVE_DECL_FWRITE_UNLOCKED +#define fwrite_unlocked(w,x,y,z) fwrite (w,x,y,z) +#endif + +#if !HAVE_DECL_PUTC_UNLOCKED +#define putc_unlocked(x,y) putc (x,y) +#endif + +#if !HAVE_DECL_PUTCHAR_UNLOCKED +#define putchar_unlocked(x) putchar (x) +#endif + #endif /* eu-config.h */ -- 2.1.4