php / php/php-src

PHP_ADD_EXTENSION_DEP doesn't fail when expected (build system)

Abierto
#12,797 2 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Bug Category: Build System Status: Needs Triage
Lenguaje dominante
C
Estrellas
40.4k
Forks
8.1k
Merge medio
2 d 13 h
PR fusionados (30 d)
96

Descripción

Description

I have the following m4 code: https://github.com/pmmp/ext-pmmpthread/blob/6a516e5b58d326e2dcc23bb75fba6e210d5b313f/config.m4#L33-L44

        CLASSES_SRC="classes/pool.c classes/thread.c classes/thread_safe_array.c classes/thread_safe.c classes/runnable.c classes/worker.c"
        PHP_NEW_EXTENSION(pmmpthread, php_pmmpthread.c $CLASSES_SRC src/copy.c src/monitor.c src/worker.c src/globals.c src/prepare.c src/store.c src/handlers.c src/object.c src/routine.c src/queue.c src/ext_sockets_hacks.c, $ext_shared,, -DZEND_ENABLE_STATIC_TSRMLS_CACHE=1 -Werror=implicit-function-declaration)
        PHP_ADD_BUILD_DIR($ext_builddir/src, 1)
        PHP_ADD_INCLUDE($ext_builddir)

        if test "$PHP_PMMPTHREAD_SOCKETS" != "no"; then
                AC_MSG_NOTICE([Support for passing Socket objects between threads enabled. The sockets extension must be loaded at runtime. You can disable support using --without-pmmpthread-sockets.])
                AC_DEFINE(HAVE_PMMPTHREAD_EXT_SOCKETS_SUPPORT, 1, [Whether pmmpthread supports passing Socket objects between threads])
                PHP_ADD_EXTENSION_DEP(pmmpthread, sockets)
        else
                AC_MSG_NOTICE([Support for passing Socket objects between threads disabled. You can enable support using --with-pmmpthread-sockets.])
        fi
fi

When using --disable-all or --disable-sockets in conjunction with --with-pmmpthread-sockets, I expect the configure command to fail (because of the PHP_ADD_EXTENSION_DEP(pmmpthread, sockets)), but it doesn't.
The build proceeds and results in a compile error due to sockets being disabled.

Similar code for Windows works correctly.

PHP Version

PHP 8.2 git 6a914cb7a50fafbda38a4d8acce3a06b97dbd994

Operating System

WSL2 Ubuntu 20.04

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con el ejemplo de config.m4 enlazado y sigue PHP_ADD_EXTENSION_DEP(pmmpthread, sockets) a través de las macros de generación de configure. Reprodúcelo con --disable-all o --disable-sockets junto con --with-pmmpthread-sockets y compara después la ruta de Unix con el comportamiento en Windows; se considera terminado cuando configure rechaza la dependencia ausente antes de la compilación.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
php
Área
build-system
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
45/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.