Dear all,
I'm currently working on some pieces of the build system.
I must admit I don't really like the fact that MPIR ships a modified yasm source tree.
I think it would be cleaner, and easier to maintain, to ship a tarball and untar it, or to the least a vanilla source tree, possibly patch it and then configure/build it if needed (i already added options to use a system-wide or user-provided yasm, when autotools are used at least).
A little like what we do in Sage when we patch upstream software (like MPIR!).
Do you really need to pass specific options to yasm? or a "generic" (./configure && make) build would do?
That's important because the main modification I see is to let the autotools stuff recognize options given to MPIr and automatically passed to yasm.
My other question is about the VS builds because I never tried them and feel completely incompetent.
With VS, is yasm always built?
Is it possible to let VS untar something? or does yasm directory have to be uncompressed?
Best,
JP
--
You received this message because you are subscribed to the Google Groups "mpir-devel" group.
To unsubscribe from this group and stop receiving emails from it, send an email to mpir-devel+...@googlegroups.com.
To post to this group, send email to mpir-...@googlegroups.com.
Visit this group at http://groups.google.com/group/mpir-devel.
For more options, visit https://groups.google.com/groups/opt_out.
Bonus question: what are the differences betwen the x86 and x86w dirs (and subdirs) (and x86_64 and x86_64w dirs (and subdirs))?
On plain x86, is it only the asm syntax?
So that YASM gets used everywhere for the x86w dir, whereas GNU as gets also used for the x86 dir?
(And for x86_64w I guess the very nice idea of having different ABI on Linux and Windows also comes into play...)
I could have a look myself, but I'm sure some of you can give a very nice explanation!
Thanks in advance,
Best,
JP
Additional bonus question: among the mingw flavours, which are supported (or known to work)? I mean among legacy mingw(32), i686-w64-mingw and x86_64-w64-mingw?
From very quick testing, I'd say the latter (kind of) work, the middle one does not, and I did not test the first one (Ubuntu does not want to install both falvours at the same time! it seems that Debian is nicer though).
On 31 July 2013 21:06, Jean-Pierre Flori <jpf...@gmail.com> wrote:
Bonus question: what are the differences betwen the x86 and x86w dirs (and subdirs) (and x86_64 and x86_64w dirs (and subdirs))?
The w is for Windows.
The ABI is different, so all the assembly needs to be rewritten.
On plain x86, is it only the asm syntax?I don't recall. I doubt it.
So that YASM gets used everywhere for the x86w dir, whereas GNU as gets also used for the x86 dir?Yes.(And for x86_64w I guess the very nice idea of having different ABI on Linux and Windows also comes into play...)Yes.
I could have a look myself, but I'm sure some of you can give a very nice explanation!
Thanks in advance,
Best,
JP
Additional bonus question: among the mingw flavours, which are supported (or known to work)? I mean among legacy mingw(32), i686-w64-mingw and x86_64-w64-mingw?
From very quick testing, I'd say the latter (kind of) work, the middle one does not, and I did not test the first one (Ubuntu does not want to install both falvours at the same time! it seems that Debian is nicer though).None are supported or known to work. They keep breaking it, every single version.
On 31 July 2013 18:24, Jean-Pierre Flori <jpf...@gmail.com> wrote:
Dear all,
I'm currently working on some pieces of the build system.
I must admit I don't really like the fact that MPIR ships a modified yasm source tree.
I think it would be cleaner, and easier to maintain, to ship a tarball and untar it, or to the least a vanilla source tree, possibly patch it and then configure/build it if needed (i already added options to use a system-wide or user-provided yasm, when autotools are used at least).
This should be possible. As far as I know the Windows MSVC build uses a precompiled yasm, not the one in the tree, so everything should be fine if yasm is built separately.The downside is that GMP builds out-of-the-box without requiring one to download a separate assembler. I would abandon yasm for *nix if it were not for the fact that it is much easier for Brian Gladman to convert *nix assembler to Windows format if it is already in Yasm format (Intel format assembler is much more popular that AT&T format on Windows, I believe).
A little like what we do in Sage when we patch upstream software (like MPIR!).
Do you really need to pass specific options to yasm? or a "generic" (./configure && make) build would do?
I believe some options are necessarily passed to Yasm.
That's important because the main modification I see is to let the autotools stuff recognize options given to MPIr and automatically passed to yasm.
I think the options are not the same as the ones passed to MPIR. But it is such a long time since I worked on this, I don't recall the details.
My other question is about the VS builds because I never tried them and feel completely incompetent.
With VS, is yasm always built?As far as I recall, the user downloads a special version of Yasm maintained by Peter Tortall, installs that in a certain location on their Windows, then builds MPIR in Visual Studio.
"Though it seems that building MPIR under VS is harder than on Linux!"I'll try and help you out.0. Install VS.1. Install yasm following the instructions on the yasm home-page.3. Goto MPIR-homepage and download tar-ball.4. Get 7zip, install and extract tar-ball in convenient location.5. Fire-up VS.6. Open sln-file in build folder of MPIR-source.7. Select config you would like, debug/release, Win32, x64.8. Build, wait 1 minute.9. Enjoy.It hardly can get any easier than that.
On 31/07/2013 18:24, Jean-Pierre Flori wrote:
> Dear all,
>
> I'm currently working on some pieces of the build system.
> I must admit I don't really like the fact that MPIR ships a modified yasm
> source tree.
> I think it would be cleaner, and easier to maintain, to ship a tarball and
> untar it, or to the least a vanilla source tree, possibly patch it and
> then configure/build it if needed (i already added options to use a
> system-wide or user-provided yasm, when autotools are used at least).
> A little like what we do in Sage when we patch upstream software (like
> MPIR!).
>
> Do you really need to pass specific options to yasm? or a "generic"
> (./configure && make) build would do?
> That's important because the main modification I see is to let the
> autotools stuff recognize options given to MPIr and automatically passed to
> yasm.
>
> My other question is about the VS builds because I never tried them and
> feel completely incompetent.
> With VS, is yasm always built? Is it possible to let VS untar something? or
> does yasm directory have to be uncompressed?
As Bill has said, I can confirm that YASM is not a part of MPIR on
Windows. The user has to download and install VSYASM from the YASM site
in order to build MPIR on Windows.
The source code routines in the x86w and x86_64w directories are either
original code or translations of the routines in x86 and x86_64. These
routines are designed to work using the full Windows ABI including the
Windows x64 exception handling specification, which YASM fully supports.