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

libgdiplus.so.0 is not found #429

Closed
EinstokFair opened this issue Jun 6, 2019 · 5 comments
Closed

libgdiplus.so.0 is not found #429

EinstokFair opened this issue Jun 6, 2019 · 5 comments

Comments

@EinstokFair
Copy link

EinstokFair commented Jun 6, 2019

After updating from mono-5.12 to mono 5.20, my Windows.Forms application stopped working. When I launch it, it doen't start, and prints into console the following:


Name (current) = ru-RU
Name (thread) = ru-RU
LCID = 1049
exception inside UnhandledException handler: (null) assembly:/usr/lib64/mono/4.5/mscorlib.dll type:TypeInitializationException member:(null)

[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'System.Windows.Forms.XplatUI' threw an exception. ---> System.TypeInitializationException: The type initializer for 'System.Drawing.GDIPlus' threw an exception. ---> System.DllNotFoundException: libgdiplus.so.0
  at (wrapper managed-to-native) System.Drawing.GDIPlus.GdiplusStartup(ulong&,System.Drawing.GdiplusStartupInput&,System.Drawing.GdiplusStartupOutput&)
  at System.Drawing.GDIPlus..cctor () [0x000b0] in /var/tmp/portage/dev-lang/mono-5.20.1.19/work/mono-5.20.1.19-abi_x86_64.amd64/mcs/class/System.Drawing/System.Drawing/gdipFunctions.cs:134 

The file is present on disk:


# time find / -iname "libgdiplus.so*"
/usr/lib64/libgdiplus.so
/usr/lib64/debug/usr/lib64/libgdiplus.so.0.0.0.debug
/usr/lib64/libgdiplus.so.0
/usr/lib64/libgdiplus.so.0.0.0

real 8m53,934s
user 0m15,843s
sys 0m36,169s 

It comes from


$ qfile /usr/lib64/libgdiplus.so.0.0.0
dev-dotnet/libgdiplus (/usr/lib64/libgdiplus.so.0.0.0) 

I suppose, that this file is used by System.Drawing.dll (from stack trace details): There is only one such file in the system:


/usr/lib64/mono # readlink ./4.5/System.Drawing.dll
../gac/System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll 

I tried to use ld to check which path is tested, but failed:


/usr/lib64/mono/gac $ sudo ld ./System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
ld: i386 architecture of input file `./System.Drawing/4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll' is incompatible with i386:x86-64 output
ld: warning: cannot find entry symbol _start; defaulting to 0000000000400084 

I don't know what to check next

see also
mono/mono#14030
https://bugs.gentoo.org/682068
https://bugs.gentoo.org/682198
https://stackoverflow.com/questions/22596498/mono-and-libgdiplus-libgdi-not-found

@EinstokFair
Copy link
Author

fixed with cc646e0

@cnd
Copy link
Contributor

cnd commented Jun 7, 2019

ported to tree

gentoo/gentoo@2e6dcec
gentoo/gentoo@29a833b

thank you for report & test

@leio
Copy link
Member

leio commented Jun 9, 2019

ported to tree

That was reverted due to some deptree breakage.

@leio
Copy link
Member

leio commented Jun 9, 2019

I don't agree with it having been handled that way (arm64 keywords should have been dropped instead), BUT I also do not see a re-keywording bug for arm (let alone arm64), which must be done as even asked about in the developer quizzes.

@cnd
Copy link
Contributor

cnd commented Jun 10, 2019

Yes, I've mistaken with libgdiplus update, reverted keywords to old ones for now

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

No branches or pull requests

3 participants