From patchwork Tue Feb 21 04:04:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Kacper_Piwi=C5=84ski?= X-Patchwork-Id: 65292 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id B503F385840F for ; Tue, 21 Feb 2023 04:04:48 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org B503F385840F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1676952288; bh=Mbk/lstArir5D+F7R0WIBCUBj3iQcxwsnKskXuMgjPE=; h=Date:Subject:To:List-Id:List-Unsubscribe:List-Archive:List-Post: List-Help:List-Subscribe:From:Reply-To:From; b=sBh2Dfvcjhuj6nOJ8K2m7taO9l+g9DFpVo39OHblKhb3cYk1lDhScQdZbxmbP/DF0 GZcxeuHZYXlglCMvwEBq5TeejmRl7hRVNHRWRIHxE08dgCjAJczxciuQW5TdaCOW3H 3rnf+9aBa1RVN1FHGHEs361k/eWNoddn9FDbFYKA= X-Original-To: libc-alpha@sourceware.org Delivered-To: libc-alpha@sourceware.org Received: from mail-yw1-x112a.google.com (mail-yw1-x112a.google.com [IPv6:2607:f8b0:4864:20::112a]) by sourceware.org (Postfix) with ESMTPS id BCADA3858D1E for ; Tue, 21 Feb 2023 04:04:26 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org BCADA3858D1E Received: by mail-yw1-x112a.google.com with SMTP id 00721157ae682-536af432ee5so44961527b3.0 for ; Mon, 20 Feb 2023 20:04:26 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:to:subject:message-id:date:from :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=Mbk/lstArir5D+F7R0WIBCUBj3iQcxwsnKskXuMgjPE=; b=upyqcL5CzxWJFx/6WKWUB26CNMItgugqYxC/vrTx895gpKjHaJXtGrw/yZNNxGWdmo f7iXG0xbQgfjYtswwEc2VwvLgJTOg7wseeVmzstVb51flWpa6V6I/WZgmcIY0l/6k8rG EgYFr5+OuA2Mioedfmu5LA9gGIVylqoO5aMf66BXFaxTPS5i2l3PAKoJ+sjuokp2vkpV 5zGS/KH91k6azSDyuCBgmTeZ62a7sZe4xfj10Hsye79l2mQ5i7KZsP0xS+2VgpRQfRxF 9aOrMnj9/x3f9/y7eCQhkgh9bTSE+kowRO18nXkQxNFUZxi2p9N6H23cB8+2zPswUjSR DB5Q== X-Gm-Message-State: AO0yUKUDdGKYt/Mfn2fl2O42PXhfkw9CFq4ME8nT0relb4BoC6+xXnm/ QLUsmKRLlQ53yX2WRmAx0ZkXKqSzmvQw6jDqlaluwufOzDQ= X-Google-Smtp-Source: AK7set+Mjn3xbkBmW/ONUlOQ8gRc4lf3etfb6E4CYGaPCEWlcWSxuINZ/t4HB6ogs1Y2k9uOpxck8JrzZRZWSM4XgMk= X-Received: by 2002:a81:5a02:0:b0:52f:11e7:bf17 with SMTP id o2-20020a815a02000000b0052f11e7bf17mr2413142ywb.439.1676952266086; Mon, 20 Feb 2023 20:04:26 -0800 (PST) MIME-Version: 1.0 Date: Tue, 21 Feb 2023 05:04:15 +0100 Message-ID: Subject: [PATCH] linux: fix ntp_gettime abi break To: libc-alpha@sourceware.org X-Spam-Status: No, score=-8.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM, GIT_PATCH_0, HK_RANDOM_ENVFROM, HK_RANDOM_FROM, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: libc-alpha@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Libc-alpha mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: =?utf-8?q?Kacper_Piwi=C5=84ski_via_Libc-alpha?= From: =?utf-8?q?Kacper_Piwi=C5=84ski?= Reply-To: =?utf-8?q?Kacper_Piwi=C5=84ski?= Errors-To: libc-alpha-bounces+patchwork=sourceware.org@sourceware.org Sender: "Libc-alpha" Between versions v2.11 and v2.12 struct ntptimeval got new fields. That wasn't a problem because new function ntp_gettimex was created (and made default) to support new struct. Old ntp_gettime was not using new fields so it was safe to call with old struct definition. Then between versions v2.31 and v2.32 when working on y2038 bugs, ntp_gettime start setting new fields. Sets fields manually to maintain compatibility with v2.11 struct definition. Author: Kacper PiwiƄski --- sysdeps/unix/sysv/linux/ntp_gettime.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) -- 2.38.1.windows.1 diff --git a/sysdeps/unix/sysv/linux/ntp_gettime.c b/sysdeps/unix/sysv/linux/ntp_gettime.c index 4879573530..3844b2e487 100644 --- a/sysdeps/unix/sysv/linux/ntp_gettime.c +++ b/sysdeps/unix/sysv/linux/ntp_gettime.c @@ -54,7 +54,11 @@ __ntp_gettime (struct ntptimeval *ntv) int result; result = __ntp_gettime64 (&ntv64); - *ntv = valid_ntptimeval64_to_ntptimeval (ntv64); + //manually update fields to maintain abi with v2.11 struct definition + struct ntptimeval tntv = valid_ntptimeval64_to_ntptimeval (ntv64); + ntv->time = tntv.time; + ntv->maxerror = tntv.maxerror; + ntv->esterror = tntv.esterror; return result; }