Skip to content
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

feature to mutually exclude extensions? #594

Open
CyberLine opened this issue Jan 29, 2025 · 2 comments
Open

feature to mutually exclude extensions? #594

CyberLine opened this issue Jan 29, 2025 · 2 comments
Labels
question Further information is requested

Comments

@CyberLine
Copy link
Contributor

as grpc and protobuf extensions (at least on mac) will not compile due to duplicate symbols, maybe there needs to be an option in ext.json to add extensions, that will not compile with like 'ext-conflicts'

@crazywhalecc crazywhalecc added the question Further information is requested label Jan 31, 2025
@crazywhalecc
Copy link
Owner

crazywhalecc commented Jan 31, 2025

@CyberLine ext-conflicts was considered earlier, but overriding the validate() method in extension/xxx.php may be a more effective and thorough solution. This method can also be used to determine the minimum compatible PHP version of the extension.

In addition, I have currently tested the combination grpc,protobuf, it can be compiled well on Mac, and there should be no conflict between the two extensions. It would be better if you can provide more information about the environment and compilation commands.

@CyberLine
Copy link
Contributor Author

Steps to reproduce:

./spc switch-php-version 8.3
./spc download --for-extensions=grpc,protobuf
./spc build --build-cli grpc,protobuf --debug

Build on an M2 Max arm64 Macbook i got those errors:

...
duplicate symbol '__upb_Map_CTypeSizeTable' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Map_Delete' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Arena_SpaceAllocated' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1034](arena.o)
duplicate symbol '_upb_Array_Move' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1036](array.o)
duplicate symbol '_upb_Arena_IncRefFor' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1034](arena.o)
duplicate symbol '_upb_MapIterator_Done' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Arena_Init' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1034](arena.o)
duplicate symbol '_upb_Arena_Fuse' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1034](arena.o)
duplicate symbol '_upb_Array_Append' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1036](array.o)
duplicate symbol '_upb_Array_Get' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1036](array.o)
duplicate symbol '__upb_Message_DiscardUnknown_shallow' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1045](message.o)
duplicate symbol '_upb_Arena_Free' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1034](arena.o)
duplicate symbol '_upb_Array_Delete' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1036](array.o)
duplicate symbol '__upb_Map_New' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Message_ExtensionCount' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1045](message.o)
duplicate symbol '_upb_MapIterator_Key' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Arena_DecRefFor' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1034](arena.o)
duplicate symbol '_upb_Map_Clear' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_MapIterator_Value' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_MapIterator_Next' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Array_Resize' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1036](array.o)
duplicate symbol '_upb_Map_Next' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_kUpb_FltInfinity' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1041](message.o)
duplicate symbol '_kUpb_NaN' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1041](message.o)
duplicate symbol '_upb_Message_New' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1045](message.o)
duplicate symbol '_upb_Message_GetUnknown' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1045](message.o)
duplicate symbol '_upb_Arena_DebugRefCount' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1034](arena.o)
duplicate symbol '_upb_Map_New' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Map_Get' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Map_SetEntryValue' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Array_Set' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1036](array.o)
duplicate symbol '_upb_Map_Insert' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Array_Insert' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1036](array.o)
duplicate symbol '_kUpb_Infinity' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1041](message.o)
duplicate symbol '_upb_Map_Size' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1042](map.o)
duplicate symbol '_upb_Array_New' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1036](array.o)
duplicate symbol '_upb_Message_DeleteUnknown' in:
    /Users/cyberline/Documents/workspace/static-php-cli/source/php-src/ext/protobuf/php-upb.o
    /Users/cyberline/Documents/workspace/static-php-cli/buildroot/lib/libgrpc.a[1045](message.o)
ld: 37 duplicate symbols
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [sapi/cli/php] Error 1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

2 participants