Skip to contentSkip to conversation

package/mono: fixing shared/static handling

PATCH New Angelo Compagnucci 2 participants 5 messages Dec 13, 2014 – Dec 14, 2014

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 package/mono: fixing shared/static handling

Mono should always be compiled with --enable-static, this patch forces --enable-static also in case of shared only libraries.

Fixes:
http://autobuild.buildroot.net/results/e739d64011fb6a24ccbef136d75944f3bd2eba03/
http://autobuild.buildroot.net/results/7ebe6909da859507639f57da2d4fee46efc062d4/
http://autobuild.buildroot.net/results/03c2243080b026b0c6f4bb64e7dc8dc359f0c8c2/
http://autobuild.buildroot.net/results/406bf830ae84cf9ce4afd5a4ddc265197df42b44/
http://autobuild.buildroot.net/results/894a3e0627244b5e1980c3840629b4627999d252/
http://autobuild.buildroot.net/results/2dad2609834564060dc090919c128b45e289102e/
http://autobuild.buildroot.net/results/46de32cbe68b614763a72303490515f80cfe5bfd/
http://autobuild.buildroot.net/results/b167d2660ca37b896ceb8f1372d88eda6d6397d7/
http://autobuild.buildroot.net/results/17b6aee3d0aaf425412f9f5d89de665de9efedb8/
http://autobuild.buildroot.net/results/af9e5203299819085441fb6ee27e027d58f220b3/
http://autobuild.buildroot.net/results/138e5bd9bd0e2ad6de13278b446d1a48a9b64b17/
http://autobuild.buildroot.net/results/b77d52aaa5face5d5b8afe39f9a32a51b1df500f/

---
 package/mono/mono.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/mono/mono.mk +2 -1
index baf205a..3d50ac1 100644
@@ -24,7 +24,8 @@ MONO_CONF_OPTS = --disable-gtk-doc \
 	--disable-libraries \
 	--with-ikvm-native=no \
 	--enable-minimal=aot,profiler,debug \
-	--disable-mcs-build
+	--disable-mcs-build \
+	--enable-static
 
 # The libraries have been built by the host-mono build. Since they are
 # architecture-independent, we simply copy them to the target.
Signature · 1 line
1.9.1
#1 lore raw

PATCH 1/1 package/mono: fixing shared/static handling

Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Angelo" == Angelo Compagnucci <[email protected]> writes:

Mono should always be compiled with --enable-static, this patch forces --enable-static also in case of shared only libraries.

Why? If it is really required, then mono should depend on !BR2_SHARED_LIBS and show a comment to inform the user that it needs static library support.

Quoted 40 lines

Fixes:
http://autobuild.buildroot.net/results/e739d64011fb6a24ccbef136d75944f3bd2eba03/
http://autobuild.buildroot.net/results/7ebe6909da859507639f57da2d4fee46efc062d4/
http://autobuild.buildroot.net/results/03c2243080b026b0c6f4bb64e7dc8dc359f0c8c2/
http://autobuild.buildroot.net/results/406bf830ae84cf9ce4afd5a4ddc265197df42b44/
http://autobuild.buildroot.net/results/894a3e0627244b5e1980c3840629b4627999d252/
http://autobuild.buildroot.net/results/2dad2609834564060dc090919c128b45e289102e/
http://autobuild.buildroot.net/results/46de32cbe68b614763a72303490515f80cfe5bfd/
http://autobuild.buildroot.net/results/b167d2660ca37b896ceb8f1372d88eda6d6397d7/
http://autobuild.buildroot.net/results/17b6aee3d0aaf425412f9f5d89de665de9efedb8/
http://autobuild.buildroot.net/results/af9e5203299819085441fb6ee27e027d58f220b3/
http://autobuild.buildroot.net/results/138e5bd9bd0e2ad6de13278b446d1a48a9b64b17/
http://autobuild.buildroot.net/results/b77d52aaa5face5d5b8afe39f9a32a51b1df500f/

---
 package/mono/mono.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/mono/mono.mk +2 -1
index baf205a..3d50ac1 100644
@@ -24,7 +24,8 @@ MONO_CONF_OPTS = --disable-gtk-doc \
 	--disable-libraries \
 	--with-ikvm-native=no \
 	--enable-minimal=aot,profiler,debug \
-	--disable-mcs-build
+	--disable-mcs-build \
+	--enable-static
 
 # The libraries have been built by the host-mono build. Since they are
 # architecture-independent, we simply copy them to the target.
Signature · 6 lines
1.9.1

_______________________________________________
buildroot mailing list
buildroot at busybox.net
http://lists.busybox.net/mailman/listinfo/buildroot
Signature · 1 line
Bye, Peter Korsgaard
#2 lore raw

PATCH 1/1 package/mono: fixing shared/static handling

Hi Peter

2014-12-14 0:13 GMT+01:00 Peter Korsgaard <[email protected]>:

Quoted 8 lines
Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Angelo" == Angelo Compagnucci <[email protected]> writes:

Mono should always be compiled with --enable-static, this patch forces --enable-static also in case of shared only libraries.

Why? If it is really required, then mono should depend on !BR2_SHARED_LIBS and show a comment to inform the user that it needs static library support.

Mono doesn't really uses shared libraries at all, it ships its own glibc (eglib) and its own libmono library, It should be compiled statically for this reason, you can find further details here:
http://www.mono-project.com/docs/compiling-mono/unsupported-advanced-compile-options/#static-vs-dynamic-mono
.

Before the new shared/static handling, --enable-static was always passed as a configure option.

Sincerely, Angelo

#3 lore raw

PATCH 1/1 package/mono: fixing shared/static handling

Quoted 9 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Angelo" == Angelo Compagnucci <[email protected]> writes:

Hi Peter
2014-12-14 0:13 GMT+01:00 Peter Korsgaard <[email protected]>:

Quoted 5 lines
Quoted 4 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Angelo" == Angelo Compagnucci <[email protected]> writes:

Mono should always be compiled with --enable-static, this patch forces --enable-static also in case of shared only libraries.

Quoted 6 lines
Quoted 3 lines

Why? If it is really required, then mono should depend on !BR2_SHARED_LIBS and show a comment to inform the user that it needs static library support.

Mono doesn't really uses shared libraries at all, it ships its own glibc (eglib)

I don't know much about mono, but does this 'eglib' refer to the (GNU) C-library or the GNOME glib?

From here it sounds like the latter:
http://www.mono-project.com/archived/eglib/

Quoted 5 lines

and its own libmono library, It should be compiled statically for this reason, you can find further details here:
http://www.mono-project.com/docs/compiling-mono/unsupported-advanced-compile-options/#static-vs-dynamic-mono
Before the new shared/static handling, --enable-static was always passed as a configure option.

As far as I read that, they *RECOMMEND* that you link it statically., but it should also work when linking dynamically.

Quoted 2 lines

Before the new shared/static handling, --enable-static was always passed as a configure option.

Indeed. The point of the new handling is to ensure that only the shared variant is built (so save build time).

With that said, I did a quick test and I couldn't get it to work with --with-static_mono=no, and as it isn't supported by upstream just sticking with static might be the best approach.

Looking at how E.G. Debian does it, it seems like they also link mono(-sgen) statically:

https://packages.debian.org/jessie/mono-runtime-sgen

They do provide a libmono package:

https://packages.debian.org/jessie/libmono-2.0-1

But none of the other mono packages seem to use it, so it's presumably for embedding mono in an application:

apt-cache rdepends libmono-2.0-1
libmono-2.0-1
Reverse Depends:
libmono-2.0-1:i386
mono-complete

Signature · 2 lines
Venlig hilsen,
Peter Korsgaard 
#4 lore raw

PATCH 1/1 package/mono: fixing shared/static handling

In reply to Angelo Compagnucci
Quoted 29 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Angelo" == Angelo Compagnucci <[email protected]> writes:

Mono should always be compiled with --enable-static, this patch forces --enable-static also in case of shared only libraries.

Fixes:
http://autobuild.buildroot.net/results/e739d64011fb6a24ccbef136d75944f3bd2eba03/
http://autobuild.buildroot.net/results/7ebe6909da859507639f57da2d4fee46efc062d4/
http://autobuild.buildroot.net/results/03c2243080b026b0c6f4bb64e7dc8dc359f0c8c2/
http://autobuild.buildroot.net/results/406bf830ae84cf9ce4afd5a4ddc265197df42b44/
http://autobuild.buildroot.net/results/894a3e0627244b5e1980c3840629b4627999d252/
http://autobuild.buildroot.net/results/2dad2609834564060dc090919c128b45e289102e/
http://autobuild.buildroot.net/results/46de32cbe68b614763a72303490515f80cfe5bfd/
http://autobuild.buildroot.net/results/b167d2660ca37b896ceb8f1372d88eda6d6397d7/
http://autobuild.buildroot.net/results/17b6aee3d0aaf425412f9f5d89de665de9efedb8/
http://autobuild.buildroot.net/results/af9e5203299819085441fb6ee27e027d58f220b3/
http://autobuild.buildroot.net/results/138e5bd9bd0e2ad6de13278b446d1a48a9b64b17/
http://autobuild.buildroot.net/results/b77d52aaa5face5d5b8afe39f9a32a51b1df500f/

---
 package/mono/mono.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/mono/mono.mk +0 -0
index baf205a..3d50ac1 100644

package/mono/mono.mk MONO_CONF_OPTS = --disable-gtk-doc \ · line 28

Quoted 6 lines
package/mono/mono.mk +2 -1
@@ -24,7 +24,8 @@ MONO_CONF_OPTS = --disable-gtk-doc \
 	--disable-libraries \
 	--with-ikvm-native=no \
 	--enable-minimal=aot,profiler,debug \
-	--disable-mcs-build
+	--disable-mcs-build \
+	--enable-static

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard