Tags: lerd-env/php
Tags
fix: keep 8.1 and 8.2 off the C23 compiler probe Their bundled bcmath is written with K&R function definitions, which C23 removed, so the build dies in libbcmath the moment the compiler selects -std=gnu23. spc already patches the shipped configure to probe gnu17 instead, but it then runs buildconf --force, which regenerates configure from whatever autoconf the runner carries and puts the gnu23 probe straight back. The patch therefore only appears to work on images whose clang cannot do C23, which is why 8.1 built on one runner and failed on the other from identical source. Autoconf reads its cache from the environment, and that is consumed at configure time rather than written into configure, so it is the one lever buildconf cannot undo.
fix: keep 8.1 and 8.2 off the C23 compiler probe Their bundled bcmath is written with K&R function definitions, which C23 removed, so the build dies in libbcmath the moment the compiler selects -std=gnu23. spc already patches the shipped configure to probe gnu17 instead, but it then runs buildconf --force, which regenerates configure from whatever autoconf the runner carries and puts the gnu23 probe straight back. The patch therefore only appears to work on images whose clang cannot do C23, which is why 8.1 built on one runner and failed on the other from identical source. Autoconf reads its cache from the environment, and that is consumed at configure time rather than written into configure, so it is the one lever buildconf cannot undo.
fix: keep 8.1 and 8.2 off the C23 compiler probe Their bundled bcmath is written with K&R function definitions, which C23 removed, so the build dies in libbcmath the moment the compiler selects -std=gnu23. spc already patches the shipped configure to probe gnu17 instead, but it then runs buildconf --force, which regenerates configure from whatever autoconf the runner carries and puts the gnu23 probe straight back. The patch therefore only appears to work on images whose clang cannot do C23, which is why 8.1 built on one runner and failed on the other from identical source. Autoconf reads its cache from the environment, and that is consumed at configure time rather than written into configure, so it is the one lever buildconf cannot undo.
fix: keep 8.1 and 8.2 off the C23 compiler probe Their bundled bcmath is written with K&R function definitions, which C23 removed, so the build dies in libbcmath the moment the compiler selects -std=gnu23. spc already patches the shipped configure to probe gnu17 instead, but it then runs buildconf --force, which regenerates configure from whatever autoconf the runner carries and puts the gnu23 probe straight back. The patch therefore only appears to work on images whose clang cannot do C23, which is why 8.1 built on one runner and failed on the other from identical source. Autoconf reads its cache from the environment, and that is consumed at configure time rather than written into configure, so it is the one lever buildconf cannot undo.
fix: keep 8.1 and 8.2 off the C23 compiler probe Their bundled bcmath is written with K&R function definitions, which C23 removed, so the build dies in libbcmath the moment the compiler selects -std=gnu23. spc already patches the shipped configure to probe gnu17 instead, but it then runs buildconf --force, which regenerates configure from whatever autoconf the runner carries and puts the gnu23 probe straight back. The patch therefore only appears to work on images whose clang cannot do C23, which is why 8.1 built on one runner and failed on the other from identical source. Autoconf reads its cache from the environment, and that is consumed at configure time rather than written into configure, so it is the one lever buildconf cannot undo.