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: 1785521 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=gcc.gnu.org (client-ip=2620:52:3:1:0:246e:9693:128c; helo=sourceware.org; envelope-from=gcc-patches-bounces+incoming=patchwork.ozlabs.org@gcc.gnu.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=gcc.gnu.org header.i=@gcc.gnu.org header.a=rsa-sha256 header.s=default header.b=u/ELS5F/; dkim-atps=neutral Received: from sourceware.org (server2.sourceware.org [IPv6:2620:52:3:1:0:246e:9693:128c]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4QQzk655mFz20Pb for ; Wed, 24 May 2023 15:09:02 +1000 (AEST) Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 4D019385800A for ; Wed, 24 May 2023 05:08:59 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 4D019385800A DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1684904939; bh=QCNJdEVnaN84MgKt1boXE6XwrqgxgVZ6nYGg6Zza9bA=; h=To:Cc:Subject:Date:List-Id:List-Unsubscribe:List-Archive: List-Post:List-Help:List-Subscribe:From:Reply-To:From; b=u/ELS5F/OGcsLFbBaQXbcV9KSXypfqXSMHMrHm+7Wu/AkypijO6chJkrm3MHlf8XN qan6k0lAzodPs4x2DkITXWKdrzr+k6oeWsa+l2hOKLLiurjLnYI4SAVbL6YwJ0R8dw OcofiXqdkJirmwGzEPAYQ7dDCsbc0g9Ct1w0aSdk= 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-Google-Smtp-Source: ACHHUZ77LXk3lZ7PZbUOhEBNeipzToikf8Ko3DGqaMNOBPRy+/c3TH9E9+6qo4E5hvgoxWR2K2nsLg== 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+incoming=patchwork.ozlabs.org@gcc.gnu.org Sender: "Gcc-patches" 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"] }