This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: Building the current snapshot on Windows with Guile
- From: ludo at gnu dot org (Ludovic CourtÃs)
- To: Eli Zaretskii <eliz at gnu dot org>
- Cc: xdje42 at gmail dot com, gdb-patches at sourceware dot org
- Date: Thu, 12 Jun 2014 10:27:12 +0200
- Subject: Re: Building the current snapshot on Windows with Guile
- Authentication-results: sourceware.org; auth=none
- References: <83y4x614y6 dot fsf at gnu dot org> <CAP9bCMQHCL7Riah5Z-M4Puo=qi1QLcv_Z6fVB8p=RdzLaNoUwQ at mail dot gmail dot com> <87ha3rocq3 dot fsf at gnu dot org> <83k38nze3y dot fsf at gnu dot org>
Eli Zaretskii <eliz@gnu.org> skribis:
>> From: ludo@gnu.org (Ludovic CourtÃs)
>> Cc: Eli Zaretskii <eliz@gnu.org>, "gdb-patches\@sourceware.org" <gdb-patches@sourceware.org>
>> Date: Wed, 11 Jun 2014 14:24:52 +0200
>>
>> Doug Evans <xdje42@gmail.com> skribis:
>>
>> > (*1): As Ludo suggested, we could compile these files during a gdb
>> > build, but that doesn't work in a cross-compilation scenario (without
>> > requiring more complexity in the build, which would be nice to avoid).
>> > Are these files guaranteed to be equivalent across configurations (I'm
>> > guessing not), and if not does guile provide a cross-compiler for them
>> > (I'm guessing not - could be wrong of course)?
>>
>> It does provide a cross-compiler (info "(guile) Compilation"):
>>
>> guix compile --target=mips64el-linux-gnu foo.scm -o foo.go
>>
>> But note that the interpretation of triplets might defer from that of
>> GDB. In particular, for platforms that support several ABIs with
>> different word sizes, it recognizes some specific triplet
>> extensionsâe.g., âmips64el-linux-gnuabi64â for the N64 ABI on MIPS. See
>> <http://git.savannah.gnu.org/cgit/guile.git/tree/module/system/base/target.scm#n76>.
>
> Apart of the issue with multi-ABI platforms, are there any other
> reasons for the *.go files to be non-portable?
In Guile 2.0, .go files are not portable essentially because sizeof(SCM)
is the size of a pointer, and because numbers stored in .go files are in
native endianness. (Guile 2.2 uses ELF as its container format, with
similar issues.)
> E.g., if they were compiled on a 64-bit Windows 7, will they work on a
> 32-bit Windows XP?
No.
> Does the answer depend on whether the Guile executable that compiled
> the *.scm files was a 64-bit or a 32-bit executable?
No.
> What about compiling on GNU/Linux and using on Windows, when the CPU
> is the same or from the same family?
That works fine.
Thanks,
Ludoâ.