Skip to content

Fix GH-14792: Compilation failure on pdo_* extensions #14797

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Jul 4, 2024

Conversation

petk
Copy link
Member

@petk petk commented Jul 3, 2024

When building pdo_mysql, pdo_pgsql, or pdo_sqlite from downloaded PHP 8.4 archive, also pdo_sql_parser.h and php_pdo_int.h need to be installed.

When building pdo_mysql, pdo_pgsql, or pdo_sqlite from downloaded PHP
8.4 archive, also pdo_sql_parser.h and php_pdo_int.h need to be
installed.
@SakiTakamachi
Copy link
Member

Thanks!

@petk petk merged commit ad7d1a7 into php:master Jul 4, 2024
11 checks passed
@petk petk deleted the patch-14792-pdo-headers branch July 4, 2024 12:58
@cmb69
Copy link
Member

cmb69 commented Sep 1, 2024

Just stumbled upon this while working on #15682. It seems to me this fix is not correct regarding php_pdo_int.h:

/* Stuff private to the PDO extension and not for consumption by PDO drivers
* */

In my opinion, drivers including php_pdo_int.h should be fixed; if absolutely needed declarations now in php_pdo_int.h can be moved to somewhere else (probably php_pdo.h).

@petk
Copy link
Member Author

petk commented Sep 1, 2024

If drivers and this header can be refactored in such way then that would be good idea probably, yes.

cmb69 added a commit to cmb69/php-src that referenced this pull request Sep 1, 2024
This is, as the name and a comment in the header imply, an internal
header which is not supposed to be used by extensions other than PDO
(not even by drivers).

Since there is apparently no need to include this header in the parsers
of the drivers, we remove these includes, and no longer declare the
header to be installed.  Given that the header is only exported for a
couple of weeks[1], this is not considered to be a BC break, because
it's unlikely that external drivers have already been adjusted to use
this header, and otherwise they can still be fixed; PHP 8.4 is still in
the pre-release stage.

[1] <php#14797>
@cmb69
Copy link
Member

cmb69 commented Sep 1, 2024

I've submitted PR #15688.

cmb69 added a commit that referenced this pull request Sep 1, 2024
This is, as the name and a comment in the header imply, an internal
header which is not supposed to be used by extensions other than PDO
(not even by drivers).

Since there is apparently no need to include this header in the parsers
of the drivers, we remove these includes, and no longer declare the
header to be installed.  Given that the header is only exported for a
couple of weeks[1], this is not considered to be a BC break, because
it's unlikely that external drivers have already been adjusted to use
this header, and otherwise they can still be fixed; PHP 8.4 is still in
the pre-release stage.

[1] <#14797>

Closes GH-15688.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Compilation failure on pdo_mysql extension for 8.4alpha Docker image
3 participants