Skip to content

PGO builds of shared ext-intl are broken #19307

Closed

Description

@cmb69

Description

The following code:

buildconf
configure --enable-snapshot-build --with-php-build=..\deps --enable-pgi
nmake

Resulted in this output:

   Creating library D:\a\php-ftw\php-ftw\php\vs16\x64\obj\Release_TS\php_intl.lib and object D:\a\php-ftw\php-ftw\php\vs16\x64\obj\Release_TS\php_intl.exp
idn.obj : error LNK2001: unresolved external symbol "void * _tsrm_ls_cache" (?_tsrm_ls_cache@@3PEAXEA)
  Hint on symbols that are defined and could potentially match:
    _tsrm_ls_cache
D:\a\php-ftw\php-ftw\php\vs16\x64\obj\Release_TS\php_intl.dll : fatal error LNK1120: 1 unresolved externals

See https://github.com/cmb69/php-ftw/actions/runs/16617525563/job/47013603625 for full log.

PHP Version

PHP master

Operating System

Windows

Activity

  1. cmb69 commented on Jul 30, 2025

    @cmb69
    MemberAuthor

    The problem is apparently the name mangling in the intl extension (C++). A work-around would be to build without DZEND_ENABLE_STATIC_TSRMLS_CACHE (change in config.w32), but that would be suboptimal performance wise.

    I expect that to happen for other C++ extensions as well (AFAIK we only have ext-intl bundled).

  2. self-assigned this
    on Jul 30, 2025
  3. added a commit that references this issue on Jul 30, 2025
    4b173b8
  4. added a commit that references this issue on Jul 30, 2025
    4754d30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions