From patchwork Wed May 24 05:08:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexandre Oliva X-Patchwork-Id: 98289 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:b0ea:0:b0:3b6:4342:cba0 with SMTP id b10csp2602810vqo; Tue, 23 May 2023 22:09:25 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5zanKNA4y0sdI+KU5z3+9t1kW5ZGG/1RtqPupK6c0jvvNVnmsrfMxYshYLlwO+cr+nfPzN X-Received: by 2002:a17:907:2ce2:b0:96a:fd8a:f840 with SMTP id hz2-20020a1709072ce200b0096afd8af840mr16905922ejc.49.1684904965566; Tue, 23 May 2023 22:09:25 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1684904965; cv=none; d=google.com; s=arc-20160816; b=TyZT8gn+WxKyhFG5fWx7yGbO1TnrKjLoRBA85vBfbDDzwOLUzsFRb8OIjbj6P/wRW6 d0RhxFqsgbQCrMgB1yKRwcd4ieyZDrW3Cj1+cpmeBkkZbDtEQtHko0joaDiiFAoHM9I7 g65tn+BMPIl7DrZerZ1e5EhOaHY7nF+lqfHovpJ4aZVDVai1Hgan128qQ3EVru7DIddQ Vhg9hS00y9fW+3xTZ97JxMqyYYaRUIRY3FhFVvbtlLAiFqFvXnnJ9g5+jWUIdVlNqIpO 2Ua1ab0KFVyzBebql1WiOYrXo8wXkayZkVC+BS00vw85MS7TvQFE2wx3u5fB3C78Cz16 WYBg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:from:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:mime-version :user-agent:message-id:date:organization:subject:cc:to:dmarc-filter :delivered-to:dkim-signature:dkim-filter; bh=QCNJdEVnaN84MgKt1boXE6XwrqgxgVZ6nYGg6Zza9bA=; b=0qI/knwhPWCp9xZD6BJ46Qu8gEh1YbtDm/UUcx11GCOBKTrpv5y3Ausxkfx99bd0tb ulYDhK+fColBXavkIhOU81oQ8yLTIQ321zwGsMrYxbu/hr9d91GY9hsBFtIT5NC+d5ky 7OyyLffpLOCPT0daLZcokm441ciXjbSf+8/Ba1T4qjalRIKmb/m+A0TO9cx2HDAr3MsR XetBJlCHhwEmWCmRJhSH3crXg1blXjLipWt9IbGYqASFm9xufDAP7ToKO/KvrI7ASMn8 konwftJFA3D5FsIL6OiwYchLsMAnzqNDf+PfNZ4VnekxF1J1NS2m1VgR78pZE+1d5mkK mswA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=tqIuGBJQ; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id gx21-20020a1709068a5500b00965f4bb194bsi5423346ejc.529.2023.05.23.22.09.25 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 22:09:25 -0700 (PDT) Received-SPF: pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@gcc.gnu.org header.s=default header.b=tqIuGBJQ; spf=pass (google.com: domain of gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=gnu.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 32ED23858434 for ; Wed, 24 May 2023 05:09:24 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 32ED23858434 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1684904964; bh=QCNJdEVnaN84MgKt1boXE6XwrqgxgVZ6nYGg6Zza9bA=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=tqIuGBJQPstNbLuAZLco3jpBVZHfjJJWu9uRMTseihOQ+6ZT60WhInPb6ENEtmy0a 9taLv4WZyui5VCmVGxG7olkTPIj213W+wm5OTvm01KLm7kDxbWLhoZjAdquwT7z3Fz /IK+m4KyA7yhfaW3ys6CAZFnQXwlu1qWjrvamKDc= X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-oi1-x22e.google.com (mail-oi1-x22e.google.com [IPv6:2607:f8b0:4864:20::22e]) by sourceware.org (Postfix) with ESMTPS id 671CB3858D37 for ; Wed, 24 May 2023 05:08:37 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 671CB3858D37 Received: by mail-oi1-x22e.google.com with SMTP id 5614622812f47-397f6a71ee7so453994b6e.3 for ; Tue, 23 May 2023 22:08:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1684904916; x=1687496916; h=mime-version:user-agent:message-id:date:errors-to:organization :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=QCNJdEVnaN84MgKt1boXE6XwrqgxgVZ6nYGg6Zza9bA=; b=OaXvu8/ZYg2KIc1ZeYQtB/fYd/BJRr4xAIqC8O3N7llS1Qa4GpnnpqwwOa3l3YMx5t UzXOBzfvh53Dw+4a0HW5YeVxw1s7lN84LfwR4coGnaVB9P80OOKjMhsQZ/SuXK5LNLt/ vOdIQuDA3bDv64R9SjqLGXGpq9zJJgDnHSyACRlrW5Do3M/2xEf+6dK2GS31RPW6xQCZ BsGpPKL8y3HD6cDa+g1+BF67HV1FUWWs5OldKxO4WD+FXASmxN6PWdhxmGNvGPX4PYxk 7Jtyqu6jDQSMv7rAA5GShoilOMgpQcWNsCAzTz96BnRDhLFcP86+4SVptwaJp4j7hlaa n5KQ== X-Gm-Message-State: AC+VfDzo+Xb2TSJ1a0MfpKK15s4lGNqyea2pJWm1NnAwFybXFdrWJi8b ajHPjcabxXa0dj5I7HppMrAJ2DMaCLPVG7eHyoc= X-Received: by 2002:a05:6808:94:b0:398:45a4:9c8c with SMTP id s20-20020a056808009400b0039845a49c8cmr835050oic.21.1684904916441; Tue, 23 May 2023 22:08:36 -0700 (PDT) Received: from free.home ([2804:7f1:2080:6383:46d9:ede8:ee97:8cc0]) by smtp.gmail.com with ESMTPSA id r10-20020a4a370a000000b0055516447257sm3656616oor.29.2023.05.23.22.08.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 23 May 2023 22:08:36 -0700 (PDT) Received: from livre (livre.home [172.31.160.2]) by free.home (8.15.2/8.15.2) with ESMTPS id 34O58R1F3579322 (version=TLSv1.3 cipher=TLS_AES_256_GCM_SHA384 bits=256 verify=NOT); Wed, 24 May 2023 02:08:27 -0300 To: gcc-patches@gcc.gnu.org Cc: hainque@adacore.com Subject: [PATCH] Check for sysconf decl on vxworks Organization: Free thinker, does not speak for AdaCore Date: Wed, 24 May 2023 02:08:27 -0300 Message-ID: User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.1 (gnu/linux) MIME-Version: 1.0 X-Scanned-By: MIMEDefang 2.84 X-Spam-Status: No, score=-12.3 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE 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: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Alexandre Oliva via Gcc-patches From: Alexandre Oliva Reply-To: Alexandre Oliva Errors-To: gcc-patches-bounces+ouuuleilei=gmail.com@gcc.gnu.org Sender: "Gcc-patches" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1766750908987073331?= X-GMAIL-MSGID: =?utf-8?q?1766750908987073331?= The sysconf function is only available in rtp mode on vxworks. In kernel mode, it is not even declared, but the feature test macro in the testsuite doesn't notice its absence because it's a link test, and vxworks kernel mode uses partial linking. This patch introduces an alternate test on vxworks targets to check for a declaration and for an often-used sysconf parameter. Bootstrapped on x86_64-linux-gnu. Also tested on ppc- and x86-vx7r2 with gcc-12. for gcc/testsuite/ChangeLog * lib/target-supports.exp (check_effective_target_sysconf): Check for declaration and _SC_PAGESIZE on vxworks. --- gcc/testsuite/lib/target-supports.exp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gcc/testsuite/lib/target-supports.exp b/gcc/testsuite/lib/target-supports.exp index bd9f432e4a761..263ef35a2e4df 100644 --- a/gcc/testsuite/lib/target-supports.exp +++ b/gcc/testsuite/lib/target-supports.exp @@ -1146,6 +1146,17 @@ proc check_effective_target_mmap {} { # Return 1 if the target supports sysconf, 0 otherwise. proc check_effective_target_sysconf {} { + # VxWorks has sysconf in rtp mode only, but our way to test can't + # tell kernel mode doesn't, as we're doing partial links for + # kernel modules. We can tell by checking for a declaration, or + # for some sysconf parm, because configurations that don't offer + # sysconf don't have either. + if { [istarget *-*-vxworks*] } { + return [check_no_compiler_messages sysconfdecl assembly { + #include + int f() { return sysconf(_SC_PAGESIZE); } + }]; + } return [check_function_available "sysconf"] }