Building mono-2.8 for 64 bit - possible solution to the problem
Hi,
In the wee small hours (UK time), I submitted mono-2.8 to koji. Unfortunately, it failed to build for 64 bit systems and gave the following error In file included from sgen-gc.c:784:0: sgen-los.c: In function 'los_scan_card_table': sgen-los.c:482:21: warning: initialization from incompatible pointer type sgen-los.c:501:15: warning: comparison of distinct pointer types lacks a cast sgen-gc.c: At top level: sgen-cardtable.c:229:1: warning: 'collect_faulted_cards' defined but not used {standard input}: Assembler messages: {standard input}:24487: Error: @TLSLDM reloc is not supported with 64-bit output format {standard input}:24487: Error: junk `@tlsld' after expression make[3]: *** [libmonoruntimesgen_la-sgen-gc.lo] Error 1 After Googling around, I think I've hit the cause - it's down to the cross compiler used on koji (or could be). I found this... http://www.mail-archive.com/unattended-devel@lists.sourceforge.net/msg02316.html which seems to point to the cross compilation being the problem for building mono on the 64 bit buildsys. Could someone please confirm this is the problem before I bung it into the big red lizard for fixing? If it is the problem, what component to I file it against? Thanks Paul -- Vertraue mir, ich weiss, was ich mache... -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
Building mono-2.8 for 64 bit - possible solution to the problem
On Wed, Oct 13, 2010 at 5:10 PM, Paul F. Johnson
<paul@all-the-johnsons.co.uk> wrote: > Hi, > > In the wee small hours (UK time), I submitted mono-2.8 to koji. > Unfortunately, it failed to build for 64 bit systems and gave the > following error > > In file included from sgen-gc.c:784:0: > sgen-los.c: In function 'los_scan_card_table': > sgen-los.c:482:21: warning: initialization from incompatible pointer > type > sgen-los.c:501:15: warning: comparison of distinct pointer types lacks a > cast > sgen-gc.c: At top level: > sgen-cardtable.c:229:1: warning: 'collect_faulted_cards' defined but not > used > {standard input}: Assembler messages: > {standard input}:24487: Error: @TLSLDM reloc is not supported with > 64-bit output format > {standard input}:24487: Error: junk `@tlsld' after expression > make[3]: *** [libmonoruntimesgen_la-sgen-gc.lo] Error 1 > > After Googling around, I think I've hit the cause - it's down to the > cross compiler used on koji (or could be). I found this... koji doesn't cross compile at all. > http://www.mail-archive.com/unattended-devel@lists.sourceforge.net/msg02316.html > > which seems to point to the cross compilation being the problem for > building mono on the 64 bit buildsys. If you look at your own build.log, you'll see very clearly during the configure output that it is not cross compiling. josh -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
Building mono-2.8 for 64 bit - possible solution to the problem
> {standard input}: Assembler messages:
> {standard input}:24487: Error: @TLSLDM reloc is not supported with > 64-bit output format > {standard input}:24487: Error: junk `@tlsld' after expression > make[3]: *** [libmonoruntimesgen_la-sgen-gc.lo] Error 1 This is certainly a case of compiling i386 code and then trying to link it as x86-64 (or with other code compiled for x86-64). > After Googling around, I think I've hit the cause - it's down to the > cross compiler used on koji (or could be). I found this... > > http://www.mail-archive.com/unattended-devel@lists.sourceforge.net/msg02316.html > > which seems to point to the cross compilation being the problem for > building mono on the 64 bit buildsys. If what you really intend is to compile i[3-6]86 code in an x86_64 rpm, then indeed you need to make sure that you are passing -m32 for all the compiler invocations any compilation or linking of the 32-bit code. Thanks, Roland -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
Building mono-2.8 for 64 bit - possible solution to the problem
Hi,
> > After Googling around, I think I've hit the cause - it's down to the > > cross compiler used on koji (or could be). I found this... > > koji doesn't cross compile at all. In that case, it looks like TLS support is not in the 64 bit version of glibc... TTFN Paul -- Vertraue mir, ich weiss, was ich mache... -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
Building mono-2.8 for 64 bit - possible solution to the problem
Hi,
> > {standard input}: Assembler messages: > > {standard input}:24487: Error: @TLSLDM reloc is not supported with > > 64-bit output format > > {standard input}:24487: Error: junk `@tlsld' after expression > > make[3]: *** [libmonoruntimesgen_la-sgen-gc.lo] Error 1 > > This is certainly a case of compiling i386 code and then trying to link it > as x86-64 (or with other code compiled for x86-64). In previous incarnations of mono, this has worked without a hitch > > After Googling around, I think I've hit the cause - it's down to the > > cross compiler used on koji (or could be). I found this... > > > > http://www.mail-archive.com/unattended-devel@lists.sourceforge.net/msg02316.html > > > > which seems to point to the cross compilation being the problem for > > building mono on the 64 bit buildsys. > > If what you really intend is to compile i[3-6]86 code in an x86_64 rpm, > then indeed you need to make sure that you are passing -m32 for all > the compiler invocations any compilation or linking of the 32-bit code. I'm not sure in this case. As I've said, the last version (2.6.7-3) build fine on the 64 bit boxes without the need to pass any flags to the compiler so either Novell has messed with something or the buildsys is not being nice to me. Can't decide which... TTFN Paul -- Vertraue mir, ich weiss, was ich mache... -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
Building mono-2.8 for 64 bit - possible solution to the problem
> Hi,
> > > > {standard input}: Assembler messages: > > > {standard input}:24487: Error: @TLSLDM reloc is not supported with > > > 64-bit output format > > > {standard input}:24487: Error: junk `@tlsld' after expression > > > make[3]: *** [libmonoruntimesgen_la-sgen-gc.lo] Error 1 > > > > This is certainly a case of compiling i386 code and then trying to link it > > as x86-64 (or with other code compiled for x86-64). > > In previous incarnations of mono, this has worked without a hitch You mean that building some different code worked on x86-64, right? Not that you are specifically aware that Mono compiles i386 code and then links it together with x86-64 code. If you mean the latter, color me doubtful. > I'm not sure in this case. As I've said, the last version (2.6.7-3) > build fine on the 64 bit boxes without the need to pass any flags to the > compiler so either Novell has messed with something or the buildsys is > not being nice to me. Can't decide which... It seems nearly certain that the Mono code broke to do something dumb. Have you built it by hand on any x86-64 system? Thanks, Roland -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
Building mono-2.8 for 64 bit - possible solution to the problem
Hi,
> It seems nearly certain that the Mono code broke to do something dumb. Quite possibly... > Have you built it by hand on any x86-64 system? I would if I had a 64 bit box... TTFN Paul -- Vertraue mir, ich weiss, was ich mache... -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
Building mono-2.8 for 64 bit - possible solution to the problem
Roland McGrath wrote:
> If what you really intend is to compile i[3-6]86 code in an x86_64 rpm, > then indeed you need to make sure that you are passing -m32 for all > the compiler invocations any compilation or linking of the 32-bit code. Uh, -m32 is not supposed to get used in Fedora builds, in fact it will normally not work because there are no 32-bit libraries in the buildroot. And the problem at hand might even be caused by -m32 (ab)use in the first place. Kevin Kofler -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
Building mono-2.8 for 64 bit - possible solution to the problem
Paul F. Johnson wrote:
> In file included from sgen-gc.c:784:0: > sgen-los.c: In function 'los_scan_card_table': > sgen-los.c:482:21: warning: initialization from incompatible pointer > type > sgen-los.c:501:15: warning: comparison of distinct pointer types lacks a > cast Those might be 64-bit-safety issues, depending on what the 2 offending pointer types are. > sgen-gc.c: At top level: > sgen-cardtable.c:229:1: warning: 'collect_faulted_cards' defined but not > used This is harmless. > {standard input}: Assembler messages: > {standard input}:24487: Error: @TLSLDM reloc is not supported with > 64-bit output format > {standard input}:24487: Error: junk `@tlsld' after expression > make[3]: *** [libmonoruntimesgen_la-sgen-gc.lo] Error 1 This is the error. Is there any inline assembly being used? I suspect that there's 32-bit-only inline assembly involved here (unless it's C code being compiled to assembly with -m32 and then assembled as 64-bit or some other completely stupid thing like that, but inline assembly is my #1 suspect). Kevin Kofler -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
Building mono-2.8 for 64 bit - possible solution to the problem
Hmm. I did a build with:
mock -r fedora-rawhide-x86_64 mono-2.8-1.1.fc15.src.rpm on an f13/x86-64 host and it finished without complaint. All the resultant binaries are 64-bit, not 32-bit. So any hacks with -m32 are surely quite wrong. Perhaps something is indeed wonky in koji, or maybe some prerequisite just got broken and fixed since. You should try just resubmitting the package build. Thanks, Roland -- devel mailing list devel@lists.fedoraproject.org https://admin.fedoraproject.org/mailman/listinfo/devel |
| All times are GMT. The time now is 08:51 PM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.