-
Notifications
You must be signed in to change notification settings - Fork 241
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
Duplicate symbols (filename case sensitivity issue with libsdl ) #893
Comments
I checked my android buildozer build and it appears the uppercase variant is used there. Does that mean the uppercase variant is the "correct" version?
|
It looks like this issue has come up before: If case insensitivity still the default for macOS, it might be easiest to move to a case insensitive disk. |
In the recipe, it is mixed case: so there is probably a string conversion going on somewhere in either kivy-ios or the rest of the build system (xcode) |
I checked my mac, and it is current set to case insensitive
@tcaduser thanks. I see in that link the SDL2 is upper case, which I think is the correct form. So we need to find out what thing is causing the lower case form? |
If your filesystem is case insensitive, it means that the same exact file is being referenced twice. Looking on your linker line, I see the same libraries being listed multiple times:
ordinarily a linker shouldn't care if the same filename is listed multiple times, so it may mean that the case difference is confusing clang:
so you would need to find the recipe referencing the libraries with different case sensitivity. |
So you mean grepping this repository's files for a lower case form of lsdl2? We can do that. |
what I am seeing is that the recipes are referencing themselves with the mixed case name:
and the dependent packages are using the case insensitive name:
|
Since I've never seen this problem before, but I haven't build a package in a while, I am guessing that either Your version of XCode is too new or Your version of XCode is too old |
Thanks, I'll check the xcode version. When you say "mixed cased name" - do you mean the uppercase form (SDL2) and the case insensitive name is the lower case form (sdl2) ? |
also note that the linker is being passed: perhaps from XCode itself.
my hypothesis, based on: is that XCode may have a bug in setting this flag. Are you doing the final compile? It looks like you are doing a Debug build. Can you choose a Release build in XCode, and see if that flag magically goes away. Please note that a flag like this is to prevent symbol clashes and resulting in bad behavior. |
Checked two things:
I can try upgrading to 15. |
In order to go to Xcode 15 I first have to upgrade to MacOS 13.5. Perspective: my builds were previously running correctly on kivy 2.2.1 - the problems only started when I upgraded to kivy 2.3.0 and this latest kivy-ios, XCode was the same (14.3) under the previous setup. Given this, could it be possible something in kivy-ios was regressed? |
I don't know. The owners of this project are doing a lot of changes. I would look into your XCode build configuration and see if you can remove the no_deduplicate flag manually. Release and Debug flags are things that you can control in gui |
or you can see if the owners of this project would be willing to filter out duplicated library names when generating the xcode project |
Thanks for all of the help! I will check those and get back. Hopefully the project maintainers chime in. |
@brentpicasso can you please share a screenshot of "Frameworks, Libraries, and Embedded content" from XCode? Since we moved from |
@misl6 Here you go: |
@misl6 thank you for the help> I'm not following - in my screenshots I don't see libname.a listed there. Where are you seeing it? |
I searched my project.pbxproj and there are no references to the string libname in there... |
You can do this in the gui for XCode. Remove all of the names with the
".a" extension from the assets list, and then try to rebuild. This should
then edit the pbxproj for you
…On Thu, Feb 8, 2024 at 12:40 PM Brent Picasso ***@***.***> wrote:
I searched my project.pbxproj and there are no references to the string
libname in there...
—
Reply to this email directly, view it on GitHub
<#893 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAS6BJMZPMPFQXDUH5D4V53YSUL2HAVCNFSM6AAAAABC6NKPMGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMZUG4ZDINZZGE>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
Oh, so not specifically "libname.a" - but remove anything with a ".a" extension from the gui. I can try that. Thank you. |
I think so. The .xcframework directories are the new way. Having bare .a
files is no longer preferred method.
|
I think I got it, thanks for the help! |
@misl6 is there a migration guide this info could be added to? |
Versions
I'm seeing duplicate symbols for libsdl libraries. This seems to be due to differences in case for libsdl files.
My initial questions
libsdl_duplicate_symbols.txt
Steps I did to observe this:
I did a complete rebuild of the toolchain (deleted build and dist) and re-installed with this command:
python3 toolchain.py build python3 kivy==2.3.0 pillow ffmpeg ffpyplayer
The text was updated successfully, but these errors were encountered: