php / php/php-src

PHP_ADD_EXTENSION_DEP doesn't fail when expected (build system)

Ouverte
#12,797 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

Bug Category: Build System Status: Needs Triage
Langage dominant
C
Étoiles
40.4k
Forks
8.1k
Merge moyen
2 j 13 h
PR mergées (30 j)
96

Description

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

Guide de contribution

Ouvrir le guide de contribution

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Piste de recherche

Commencez par l’exemple de config.m4 lié et suivez PHP_ADD_EXTENSION_DEP(pmmpthread, sockets) à travers les macros de génération de configure. Reproduisez le problème avec --disable-all ou --disable-sockets ainsi qu’avec --with-pmmpthread-sockets, puis comparez le chemin Unix avec le comportement sous Windows ; le travail est terminé lorsque configure rejette la dépendance manquante avant la compilation.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
php
Domaine
build-system
Type d'issue
Bug
Difficulté
3/5
Temps estimé
1-2 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
45/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.