Notice (2018-05-24): bugzilla.xamarin.com is now in
Please join us on
Visual Studio Developer Community and in the
Mono organizations on
GitHub to continue tracking issues. Bugzilla will remain
available for reference in read-only mode. We will continue to work
on open Bugzilla bugs, copy them to the new locations
as needed for follow-up, and add the new items under Related
Our sincere thanks to everyone who has contributed on this bug
tracker over the years. Thanks also for your understanding as we
make these adjustments and improvements for the future.
Please create a new report on
Developer Community or GitHub with
your current version information, steps to reproduce, and relevant error
messages or log files if you are hitting an issue that looks similar to
this resolved bug and you do not yet see a matching new report.
Created attachment 24281 [details]
The dynamic symbol mode code causes 32-bit XM applications to fail with errors such as this
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_MyClass", referenced from:
-u command line option
ld: symbol(s) not found for architecture i386
as the symbol only exists for 64-bit libraries:
Steps to reproduce:
- Unzip attached project
- Build and run. Note that it works
- Remove --dynamic-symbol-mode:ignore from mmp arguments in Mobile32 and compare
Work around is to add "--dynamic-symbol-mode:ignore" to any top level XM projects that are 32-bit are affected.
@Chris, the test app crashes now with:
> Native type size mismatch between Xamarin.Mac.dll and the executing architecture. Xamarin.Mac.dll was built for 64-bit, while the current process is 32-bit.
which looks like another issue you were looking at, which I assume means you're creating a test case for that other issue, and in that case that test case would cover this bug as well. Or should I add a separate test case for this fix?
That issue is filed here:
but the test apps are slightly different. That test was using a managed 32-bit library and hitting a managed name resolution issue.
This bug would need a 32-bit native library linked in with a binding project.
I can help create a test for this if you'd like though.