Newsgroups: php.internals Path: news.php.net Xref: news.php.net php.internals:116606 Return-Path: Delivered-To: mailing list internals@lists.php.net Received: (qmail 30718 invoked from network); 9 Dec 2021 18:27:46 -0000 Received: from unknown (HELO php-smtp4.php.net) (45.112.84.5) by pb1.pair.com with SMTP; 9 Dec 2021 18:27:46 -0000 Received: from php-smtp4.php.net (localhost [127.0.0.1]) by php-smtp4.php.net (Postfix) with ESMTP id 699E718053D for ; Thu, 9 Dec 2021 11:28:31 -0800 (PST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on php-smtp4.php.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE autolearn=no autolearn_force=no version=3.4.2 X-Spam-ASN: AS15169 209.85.128.0/17 X-Spam-Virus: No X-Envelope-From: Received: from mail-ua1-f54.google.com (mail-ua1-f54.google.com [209.85.222.54]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange ECDHE (P-256) server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by php-smtp4.php.net (Postfix) with ESMTPS for ; Thu, 9 Dec 2021 11:28:30 -0800 (PST) Received: by mail-ua1-f54.google.com with SMTP id r15so12785670uao.3 for ; Thu, 09 Dec 2021 11:28:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=basereality-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=VYtRbzLU9gW0y/Tli/TI4vvfNb9vcVuC3mS7IpmWias=; b=21Mus2KIuvjYlk8ODOOMd0hoa30Vjp7RhQVfxACultTdhi1vp35A1JGT/Mw0ukmzRI nrbWdvNjysqYK519hBQYSXGyk+Xr5XVhonswHy0Do0Mb1MDelQlU1AhNOAoZWS2Z22TV boGjzCBuyUt8tTlo59i2ZAOcjI/ht8w2rNPTd1p8+MRafyOs3uG1hwq8cU0fGhoaEzQU xBR7TYt+Z0mtvN6EyO3nkD60Mdq1H9w+3wBkCbbm5en0gQP/IfbGtetP9RKJW2+qII1f fVmW7ri75id6o1NtrRapRHH4AdKyyMAjuaei71a+PRS/RJgYtttXHstS6JcJeqOcJ+Sg 3hbw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=VYtRbzLU9gW0y/Tli/TI4vvfNb9vcVuC3mS7IpmWias=; b=nYEdVxb8lIxWRCjI55HrC0dSJILDk/nY/864m/Rv69LE7sUEARSbu1TIc3+uSys+/E sQWVLfeEGd1LKc+/j1aY7ksaUqw4ctRhhActl/KlpaEtrn/Phxe0A/CilPdtRjM0hTtW ARxaA2BZmTOLLAww1IzcpKo0sA3QYbUBnrLoWQxfSTetDPJwMFW94iWWEmnb/9gSarE0 r7zlSdlYdXuK+s0f61xmZIPoMVvEwoygxv8RABZDWLfgDDpNybMQVjwqg/5tMTa8ai91 sTbEx/JBmROzQ56fBZou0efScQ+QTAUl9Cu8hMo2r2TapmfeSfH1DYW872oDfmOiN29q wa9g== X-Gm-Message-State: AOAM530hfVSwuZWgOL3GiOA6RdDxq7GLRqWS0lHzibBJhWVdXeikUJ6p AxPWJ2qkMBeQP5OBVfiNbTosXRqR3XdDpbJ/0+ZDhQ== X-Google-Smtp-Source: ABdhPJx2PRWMOR/SJVnOFAvTQgIjRrT5HjEHG88/dfFmMamB7rMKhFZCFWfvA6rYGpA6pqrDZDwLsozhNepkPHEqTHs= X-Received: by 2002:a67:fdc3:: with SMTP id l3mr10144652vsq.42.1639078109762; Thu, 09 Dec 2021 11:28:29 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: Date: Thu, 9 Dec 2021 19:28:18 +0000 Message-ID: To: David Zuelke Cc: PHP internals Content-Type: text/plain; charset="UTF-8" Subject: Re: [PHP-DEV] Why do PHP 8.1 extensions need PHP headers during make install (worked in <8.1)? From: Danack@basereality.com (Dan Ackroyd) On Wed, 8 Dec 2021 at 15:25, David Zuelke via internals wrote: > > That doesn't work with PHP 8.1 anymore - the Makefile generated by > phpize now contains an include directive at the top level (near the > bottom), e.g.: > > -include src/php_raphf_api.dep The file src/php_raphf_api.dep is created when the source code is compiled. It creates a list of which files were used in the compilation of a C file. In this case src/php_raphf_api.c The '-include' directive apparently allows for a file to be listed, but not error when it doesn't exist, apparently: https://www.gnu.org/software/make/manual/html_node/Features.html so on a fresh cleaned build, it shouldn't make any difference. > Which lists not only the extension's headers, but also all of PHP's > (in include/main, include/Zend, and so forth): Yes. Those are the files that need to be present to compile that source code file. It's used to check to see if a C file should be recompiled, as one of it's dependencies has changed. The dep file is also deleted when doing make clean. It doesn't appear to me that the change to the phpize and the dep file is affecting other people....I think the problem you're seeing is something unique to your build process. In particular: 1. Are you doing a make clean, or is there a chance of left over files from a previous build? 2. Why are you (as far as I understand) deleting the PHP files in `5) rm -rf $installdir`, before compiling the extension? The command `make install` does a check on whether anything needs recompiling.....and I believe it's failing because the files it's trying to check no longer exist. > Is this intentional? If so, could someone explain the purpose of the change? Probably to make the build process less flaky, by explicitly checking dependencies, so that there are fewer instances of "stuffs not working.....I guess I'll do a make clean and see if that helps". cheers Dan Ack