* [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR @ 2015-07-17 16:57 Richard Tollerton 2015-07-17 16:57 ` [meta-mono] [RFC] [PATCH 1/1] mono.bbclass: set MONO_CFG_DIR Richard Tollerton 2015-07-17 17:26 ` [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR Alex J Lennon 0 siblings, 2 replies; 8+ messages in thread From: Richard Tollerton @ 2015-07-17 16:57 UTC (permalink / raw) To: yocto, ajlennon Hi Alex, When you mentioned having weird build troubles, that reminded me that I was seeing weird build problems of my own, that I had been refraining from sending patches on until I could better characterize the issue. If you've been seeing weird build failures in executables that really should never be failing in the first place -- i.e., gacutils failures, or "invalid resx file", or anything involving not being able to dlopen libc or being unable to open /etc/mono/config -- you might be interested in this patch. That said, if you *don't* have problems compiling to an ARM sysroot, I'd be interested in knowing that too. :F The following changes since commit 041cc6b70c7fb3b55e73b90b1a101844da1726b2: README: Update to remove references to mono < 3.12.1 (2015-07-17 12:38:32 +0100) are available in the git repository at: git://github.com/rtollert/meta-mono dev/rtollert/v5/mono-cfg https://github.com/rtollert/meta-mono/tree/dev/rtollert/v5/mono-cfg Richard Tollerton (1): mono.bbclass: set MONO_CFG_DIR classes/mono.bbclass | 2 ++ 1 file changed, 2 insertions(+) -- 2.4.4 ^ permalink raw reply [flat|nested] 8+ messages in thread
* [meta-mono] [RFC] [PATCH 1/1] mono.bbclass: set MONO_CFG_DIR 2015-07-17 16:57 [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR Richard Tollerton @ 2015-07-17 16:57 ` Richard Tollerton 2015-07-17 17:26 ` [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR Alex J Lennon 1 sibling, 0 replies; 8+ messages in thread From: Richard Tollerton @ 2015-07-17 16:57 UTC (permalink / raw) To: yocto, ajlennon Several mono package builds were observed to fail while cross-compiling to arm in ways that, upon stracing, boiled down to not being able to load the mono config file because mono was looking for it in ${STAGING_DIR_NATIVE}/usr/etc instead of ${STAGING_DIR_NATIVE}/etc (which is where it was being installed). mono/mono/metadata/assembly.c:set_dirs() appears to be responsible for guessing /usr/etc, by essentially computing $(dirname $0)/../etc. There's a separate codepath that instead chooses $sysconfdir (cf assembly.c:fallback(), mono-config-dirs.c:mono_config_get_cfg_dir(), and the Makefile). Presumably that's what's usually used for native mono builds, but for presently unknown reasons, it's not getting used here. The workaround implemented here is to force setting MONO_CFG_DIR for all builds to the correct location of /etc in the native sysroot. (I had earlier worked around this by changing the mono-native build to install to /usr/etc instead of /etc, but that's more complicated to manage in the recipes, and violates the configuration symmetry between architectures.) Signed-off-by: Richard Tollerton <rich.tollerton@ni.com> --- classes/mono.bbclass | 2 ++ 1 file changed, 2 insertions(+) diff --git a/classes/mono.bbclass b/classes/mono.bbclass index 315ee82..1cb4b17 100644 --- a/classes/mono.bbclass +++ b/classes/mono.bbclass @@ -30,3 +30,5 @@ FILES_${PN}-dev += "\ FILES_${PN}-doc += "\ ${libdir}/monodoc/* \ " + +export MONO_CFG_DIR="${STAGING_ETCDIR_NATIVE}" -- 2.4.4 ^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR 2015-07-17 16:57 [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR Richard Tollerton 2015-07-17 16:57 ` [meta-mono] [RFC] [PATCH 1/1] mono.bbclass: set MONO_CFG_DIR Richard Tollerton @ 2015-07-17 17:26 ` Alex J Lennon 2015-07-17 18:24 ` Richard Tollerton 1 sibling, 1 reply; 8+ messages in thread From: Alex J Lennon @ 2015-07-17 17:26 UTC (permalink / raw) To: Richard Tollerton, yocto Hi Richard, On 17/07/2015 17:57, Richard Tollerton wrote: > Hi Alex, > > When you mentioned having weird build troubles, that reminded me that I > was seeing weird build problems of my own, that I had been refraining > from sending patches on until I could better characterize the issue. > > If you've been seeing weird build failures in executables that really > should never be failing in the first place -- i.e., gacutils failures, > or "invalid resx file", or anything involving not being able to dlopen > libc or being unable to open /etc/mono/config -- you might be interested > in this patch. I think I have identified the problems I was seeing with the recipes, which boil down to the lack of a mono gmcs script and inheriting autotools-brokensep instead of autotools. I can't quite understand why you were not seeing the problem at your end, but I can see that gmcs was removed at end 2014 - https://github.com/mono/mono/commit/b304ec5e0e694ef7098e0fc3eba9dbc0162f4568 The commits I made today address the autotools-brokensep issue and get me to a point where I can build image-full-mono with a hand-added gmcs script in sysroot (There was a patch needed for monotools-server to support the more recent mono-xsp and mono-upnp needed autotools-brokensep). Now I just need to decide whether to reintroduce the gmcs script or fix all the other autotools configurations... I am probably going to reintroduce the script due to time contraints unless you want to take a look at this? > That said, if you *don't* have problems compiling to an ARM sysroot, I'd > be interested in knowing that too. :F > > > The following changes since commit 041cc6b70c7fb3b55e73b90b1a101844da1726b2: > > README: Update to remove references to mono < 3.12.1 (2015-07-17 12:38:32 +0100) > > are available in the git repository at: > > git://github.com/rtollert/meta-mono dev/rtollert/v5/mono-cfg > https://github.com/rtollert/meta-mono/tree/dev/rtollert/v5/mono-cfg > > Richard Tollerton (1): > mono.bbclass: set MONO_CFG_DIR > > classes/mono.bbclass | 2 ++ > 1 file changed, 2 insertions(+) > I use mono primarily on ARM (i.MX6) - commercially, quite a lot - and haven't seen anything that was problematical with the build for some time, since I addressed some issues with use of out of tree mono installed on the host. So from my experience "all is well" with Mono ARM builds. I'd like to know about any issues you or others have seen on ARM platforms though which we need to address. That said, I can't see any reason not to apply your patch so will merge that in. Regards, Alex ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR 2015-07-17 17:26 ` [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR Alex J Lennon @ 2015-07-17 18:24 ` Richard Tollerton 2015-07-17 18:44 ` Alex J Lennon 0 siblings, 1 reply; 8+ messages in thread From: Richard Tollerton @ 2015-07-17 18:24 UTC (permalink / raw) To: Alex J Lennon, yocto Alex J Lennon <ajlennon@dynamicdevices.co.uk> writes: > Hi Richard, > > On 17/07/2015 17:57, Richard Tollerton wrote: >> Hi Alex, >> >> When you mentioned having weird build troubles, that reminded me that I >> was seeing weird build problems of my own, that I had been refraining >> from sending patches on until I could better characterize the issue. >> >> If you've been seeing weird build failures in executables that really >> should never be failing in the first place -- i.e., gacutils failures, >> or "invalid resx file", or anything involving not being able to dlopen >> libc or being unable to open /etc/mono/config -- you might be interested >> in this patch. > > I think I have identified the problems I was seeing with the recipes, > which boil down to the lack of a mono gmcs script and inheriting > autotools-brokensep instead of autotools. > > I can't quite understand why you were not seeing the problem at your > end, but I can see that gmcs was removed at end 2014 - > > https://github.com/mono/mono/commit/b304ec5e0e694ef7098e0fc3eba9dbc0162f4568 Yeah, I saw it too. :F I wound up working around it by adding a gmcs symlink in the recipe, but then I also added a gmcs symlink in my host OS, which wound up masking the build errors when I tried removing the gmcs symlink from the recipe later. There were also some autotools-brokensep build problems I was planning on submitting later, sounds like you got those fixed first (yay!) > The commits I made today address the autotools-brokensep issue and get > me to a point where I can build image-full-mono with a hand-added gmcs > script in sysroot > > (There was a patch needed for monotools-server to support the more > recent mono-xsp and mono-upnp needed autotools-brokensep). > > Now I just need to decide whether to reintroduce the gmcs script or fix > all the other autotools configurations... A-ha! mono-xsp fixed its gmcs references in master, but hasn't cut a release since May 2013. I just asked on #monodev for somebody to cut a new release, but until then, I suppose a workaround is to create a mono-xsp_git.bb? Which other packages require gmcs? I see that monotools-server does, but I can't find evidence of that being maintained since 2010, and I otherwise don't have a use for it AFAIK. > I am probably going to reintroduce the script due to time contraints > unless you want to take a look at this? Yeah, go for it. I asked on #monodev whether there was any downside to symlinking gmcs to mcs, and at least one person responded in the negative. But IIRC, at the same time, nobody expressed any surprise that this isn't done already, which is kinda weird. I did do some grepping through the mono codebase and was unable to find any behavioral changes that were keyed off executing mcs as gmcs, so obviously it's going to emit 4.5-compatible stuff which isn't ideal, but it does get stuff building. I presume that your script solution restricts assembly versions appropriately and the like and tries to do The Right Thing. See also https://github.com/mono/mono/commit/6b76c7e984cbe42d6455ffcde2fe227aa5ffd801, which was breaking mono-xsp when build with gmcs symlinked to mcs. I presume you didn't encounter this with your script because it's properly behaving like gmcs, but once these mono-xsp gmcs fixes roll in, this will probably start breaking stuff. > I use mono primarily on ARM (i.MX6) - commercially, quite a lot - and > haven't seen anything that was problematical with the build for some > time, since I addressed some issues with use of out of tree mono > installed on the host. > > So from my experience "all is well" with Mono ARM builds. I'd like to > know about any issues you or others have seen on ARM platforms though > which we need to address. > > That said, I can't see any reason not to apply your patch so will merge > that in. Thanks. I'll try to dig deeper into this soon, and will work upstream with the mono devs when I get to the bottom of it. > Regards, > > Alex ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR 2015-07-17 18:24 ` Richard Tollerton @ 2015-07-17 18:44 ` Alex J Lennon 2015-07-18 9:29 ` Alex J Lennon 0 siblings, 1 reply; 8+ messages in thread From: Alex J Lennon @ 2015-07-17 18:44 UTC (permalink / raw) To: Richard Tollerton, yocto On 17/07/2015 19:24, Richard Tollerton wrote: > Alex J Lennon <ajlennon@dynamicdevices.co.uk> writes: > >> Hi Richard, >> >> On 17/07/2015 17:57, Richard Tollerton wrote: >>> Hi Alex, >>> >>> When you mentioned having weird build troubles, that reminded me that I >>> was seeing weird build problems of my own, that I had been refraining >>> from sending patches on until I could better characterize the issue. >>> >>> If you've been seeing weird build failures in executables that really >>> should never be failing in the first place -- i.e., gacutils failures, >>> or "invalid resx file", or anything involving not being able to dlopen >>> libc or being unable to open /etc/mono/config -- you might be interested >>> in this patch. >> I think I have identified the problems I was seeing with the recipes, >> which boil down to the lack of a mono gmcs script and inheriting >> autotools-brokensep instead of autotools. >> >> I can't quite understand why you were not seeing the problem at your >> end, but I can see that gmcs was removed at end 2014 - >> >> https://github.com/mono/mono/commit/b304ec5e0e694ef7098e0fc3eba9dbc0162f4568 > Yeah, I saw it too. :F I wound up working around it by adding a gmcs > symlink in the recipe, but then I also added a gmcs symlink in my host > OS, which wound up masking the build errors when I tried removing the > gmcs symlink from the recipe later. > > There were also some autotools-brokensep build problems I was planning > on submitting later, sounds like you got those fixed first (yay!) Good - that explains it then. Yes autotools-brokensep is in there now. The gmcs workaround will arrive shortly >> The commits I made today address the autotools-brokensep issue and get >> me to a point where I can build image-full-mono with a hand-added gmcs >> script in sysroot >> >> (There was a patch needed for monotools-server to support the more >> recent mono-xsp and mono-upnp needed autotools-brokensep). >> >> Now I just need to decide whether to reintroduce the gmcs script or fix >> all the other autotools configurations... > A-ha! mono-xsp fixed its gmcs references in master, but hasn't cut a > release since May 2013. I just asked on #monodev for somebody to cut a > new release, but until then, I suppose a workaround is to create a > mono-xsp_git.bb? > > Which other packages require gmcs? I see that monotools-server does, but > I can't find evidence of that being maintained since 2010, and I > otherwise don't have a use for it AFAIK. I'd have to check. I think there were a couple of others but adding in gmcs made all the problems "disappear" so I didn't investigate further. If I get a chance I may remove tmp/ and rebuild without the gmcs patch to see what breaks. monotools-server is there because I want to be able to remote debug onto ARM platforms with Visual Studio (or Xamarin IDE if I have to) Some time ago Xamarin had a neat Visual Studio plugin that supported this but unfortunately it has disappeared. Xamarin IDE can be configured to remote debug against Mono/Arm/Linux and I've had some success with trivial applications but I really want to find time to get this up and running for more complex commercial applications. >> I am probably going to reintroduce the script due to time contraints >> unless you want to take a look at this? > Yeah, go for it. > > I asked on #monodev whether there was any downside to symlinking gmcs to > mcs, and at least one person responded in the negative. But IIRC, at the > same time, nobody expressed any surprise that this isn't done already, > which is kinda weird. I did do some grepping through the mono codebase > and was unable to find any behavioral changes that were keyed off > executing mcs as gmcs, so obviously it's going to emit 4.5-compatible > stuff which isn't ideal, but it does get stuff building. > > I presume that your script solution restricts assembly versions > appropriately and the like and tries to do The Right Thing. > > See also > https://github.com/mono/mono/commit/6b76c7e984cbe42d6455ffcde2fe227aa5ffd801, > which was breaking mono-xsp when build with gmcs symlinked to mcs. I > presume you didn't encounter this with your script because it's properly > behaving like gmcs, but once these mono-xsp gmcs fixes roll in, this > will probably start breaking stuff. I wasn't keen on symlinking, so in the short term I am looking at just reverting the patch I referenced which removed gmcs. I can believe that may lead us onto other issues but at least it is a step in the right direction as the recipes will at least build... >> I use mono primarily on ARM (i.MX6) - commercially, quite a lot - and >> haven't seen anything that was problematical with the build for some >> time, since I addressed some issues with use of out of tree mono >> installed on the host. >> >> So from my experience "all is well" with Mono ARM builds. I'd like to >> know about any issues you or others have seen on ARM platforms though >> which we need to address. >> >> That said, I can't see any reason not to apply your patch so will merge >> that in. > Thanks. I'll try to dig deeper into this soon, and will work upstream > with the mono devs when I get to the bottom of it. Great! Cheers, Alex ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR 2015-07-17 18:44 ` Alex J Lennon @ 2015-07-18 9:29 ` Alex J Lennon 2015-07-20 18:11 ` Richard Tollerton 0 siblings, 1 reply; 8+ messages in thread From: Alex J Lennon @ 2015-07-18 9:29 UTC (permalink / raw) To: Richard Tollerton, yocto [-- Attachment #1: Type: text/plain, Size: 3765 bytes --] Hi Richard, On 17/07/2015 19:44, Alex J Lennon wrote: > > On 17/07/2015 19:24, Richard Tollerton wrote: >> Alex J Lennon <ajlennon@dynamicdevices.co.uk> writes: >> >>> Hi Richard, >>> >>> On 17/07/2015 17:57, Richard Tollerton wrote: >>>> Hi Alex, >>>> >>>> When you mentioned having weird build troubles, that reminded me that I >>>> was seeing weird build problems of my own, that I had been refraining >>>> from sending patches on until I could better characterize the issue. >>>> >>>> If you've been seeing weird build failures in executables that really >>>> should never be failing in the first place -- i.e., gacutils failures, >>>> or "invalid resx file", or anything involving not being able to dlopen >>>> libc or being unable to open /etc/mono/config -- you might be interested >>>> in this patch. >>> I think I have identified the problems I was seeing with the recipes, >>> which boil down to the lack of a mono gmcs script and inheriting >>> autotools-brokensep instead of autotools. >>> >>> I can't quite understand why you were not seeing the problem at your >>> end, but I can see that gmcs was removed at end 2014 - >>> >>> https://github.com/mono/mono/commit/b304ec5e0e694ef7098e0fc3eba9dbc0162f4568 >> Yeah, I saw it too. :F I wound up working around it by adding a gmcs >> symlink in the recipe, but then I also added a gmcs symlink in my host >> OS, which wound up masking the build errors when I tried removing the >> gmcs symlink from the recipe later. >> >> There were also some autotools-brokensep build problems I was planning >> on submitting later, sounds like you got those fixed first (yay!) > Good - that explains it then. Yes autotools-brokensep is in there now. > The gmcs workaround will arrive shortly > >>> The commits I made today address the autotools-brokensep issue and get >>> me to a point where I can build image-full-mono with a hand-added gmcs >>> script in sysroot >>> >>> (There was a patch needed for monotools-server to support the more >>> recent mono-xsp and mono-upnp needed autotools-brokensep). >>> >>> Now I just need to decide whether to reintroduce the gmcs script or fix >>> all the other autotools configurations... >> A-ha! mono-xsp fixed its gmcs references in master, but hasn't cut a >> release since May 2013. I just asked on #monodev for somebody to cut a >> new release, but until then, I suppose a workaround is to create a >> mono-xsp_git.bb? >> >> Which other packages require gmcs? I see that monotools-server does, but >> I can't find evidence of that being maintained since 2010, and I >> otherwise don't have a use for it AFAIK. Out of image-full-mono these have problems without gmcs present, Looks like we need a solution for these three to use mcs instead of gmcs, mono-xsp_3.0.11.bb checking for gmcs... no configure: WARNING: unrecognized options: --disable-dependency-tracking, --with-libtool-sysroot configure: WARNING: using cross tools not prefixed with host triplet configure: error: You need to install 'gmcs' Error: Could not run ./configure, which is required to configure xsp dbus-sharp_0.8.0.bb checking for MONO... yes checking for gmcs... no configure: error: You need to install gmcs Configure failed. The contents of all config.log files follows to aid debugging mono-addins_1.1.bb checking for pkg-config... /data_drive/imx6/rootfs_builder/qemux86.dizzy/tmp/sysroots/x86_64-linux/usr/bin/pkg-config checking for gmcs... no configure: error: mcs Not found Configure failed. The contents of all config.log files follows to aid debugging ... mono-upnp (requires mono-addins) dbus-sharp-glib (requires dbus-sharp) monotools-server (requires mono-xsp) Cheers, Alex [-- Attachment #2: Type: text/html, Size: 5371 bytes --] ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR 2015-07-18 9:29 ` Alex J Lennon @ 2015-07-20 18:11 ` Richard Tollerton 2015-07-20 18:16 ` Alex J Lennon 0 siblings, 1 reply; 8+ messages in thread From: Richard Tollerton @ 2015-07-20 18:11 UTC (permalink / raw) To: Alex J Lennon, yocto Alex J Lennon <ajlennon@dynamicdevices.co.uk> writes: > Out of image-full-mono these have problems without gmcs present, > > Looks like we need a solution for these three to use mcs instead of gmcs, > > mono-xsp_3.0.11.bb I guess I'm the least concerned about this because of the fixes applied in git. They still haven't cut a release yet so I'd guess we should just create a mono-xsp_git.bb. > dbus-sharp_0.8.0.bb We might be able to work around this by setting $GMCS, judging from configure.ac. > mono-addins_1.1.bb We might be able to work around this by setting $MCS, judging from configure.ac. Beyond that, I suppose the most OE-y way of solving this would be to promote your script to a full-blown package that PROVIDES gmcs, such that mono3 PROVIDES gmcs and mcs, but mono4 only PROVIDES mcs. Or something like that. > Cheers, > > Alex ^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR 2015-07-20 18:11 ` Richard Tollerton @ 2015-07-20 18:16 ` Alex J Lennon 0 siblings, 0 replies; 8+ messages in thread From: Alex J Lennon @ 2015-07-20 18:16 UTC (permalink / raw) To: Richard Tollerton, yocto Hi Richard, On 20/07/2015 19:11, Richard Tollerton wrote: > Alex J Lennon <ajlennon@dynamicdevices.co.uk> writes: > >> Out of image-full-mono these have problems without gmcs present, >> >> Looks like we need a solution for these three to use mcs instead of gmcs, >> >> mono-xsp_3.0.11.bb > I guess I'm the least concerned about this because of the fixes applied > in git. They still haven't cut a release yet so I'd guess we should just > create a mono-xsp_git.bb. > >> dbus-sharp_0.8.0.bb > We might be able to work around this by setting $GMCS, judging from > configure.ac. > >> mono-addins_1.1.bb > We might be able to work around this by setting $MCS, judging from > configure.ac. > > Beyond that, I suppose the most OE-y way of solving this would be to > promote your script to a full-blown package that PROVIDES gmcs, such > that mono3 PROVIDES gmcs and mcs, but mono4 only PROVIDES mcs. Or > something like that. > >> Cheers, >> >> Alex I did a set of work today to bring the recipes up to use mcs instead of gmcs. Maybe you can take a look? Thanks, Alex ^ permalink raw reply [flat|nested] 8+ messages in thread
end of thread, other threads:[~2015-07-20 18:16 UTC | newest] Thread overview: 8+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2015-07-17 16:57 [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR Richard Tollerton 2015-07-17 16:57 ` [meta-mono] [RFC] [PATCH 1/1] mono.bbclass: set MONO_CFG_DIR Richard Tollerton 2015-07-17 17:26 ` [meta-mono] [RFC] [PATCH 0/1] Force MONO_CFG_DIR Alex J Lennon 2015-07-17 18:24 ` Richard Tollerton 2015-07-17 18:44 ` Alex J Lennon 2015-07-18 9:29 ` Alex J Lennon 2015-07-20 18:11 ` Richard Tollerton 2015-07-20 18:16 ` Alex J Lennon
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.