Including windows-binary files for cross compiling into package

Joost van der Sluis joost at cnoc.nl
Thu Nov 5 15:44:10 UTC 2009


On Thu, 2009-11-05 at 14:06 +0000, Richard W.M. Jones wrote:
> On Thu, Nov 05, 2009 at 01:42:55PM +0100, Joost van der Sluis wrote:
> > A little bit? Did you read my other mail on the subject:
> > 
> > "That's an idea, but then we would be incompatible with upstream. I can
> > try to patch the configuration files of fpc so that it searches for
> > these binaries in /usr/x86_64-pc-fpc/sys-root/fpc/lib. But I prefer the
> > 'standard' location. Also because other packages based in fpc relay on
> > that.
> 
> This is based on a misunderstanding of the packaging guidelines.
> 
> The Fedora MinGW cross-compiler itself does not live in
> /usr/i686-pc-mingw32, it lives in the usual places like /usr/bin and
> /usr/lib (it's a native Fedora executable, so obviously this is where
> it should go).
> $ which i686-pc-mingw32-gcc
> /usr/bin/i686-pc-mingw32-gcc
> $ ls /usr/lib64/gcc/i686-pc-mingw32/4.3.2/
> crtbegin.o     include-fixed  libssp.a             libstdc++.a
> crtend.o       install-tools  libssp.la            libstdc++.la
> crtfastmath.o  libgcc.a       libssp_nonshared.a   libsupc++.a
> include        libgcov.a      libssp_nonshared.la  libsupc++.la

Yes, I understood that, but the object files in windows-format should be
in /usr/i686-pc-fpc/sys-root/fpc/lib, right?
That's what I meant. If you are actually on windows, MinGW needs a
directory-structure with paths like 'lib', 'bin' etc. But fpc doesn't
need that. Well, the application should be in 'program files', but I
doubt that that's what we want in a Fedora-package.

So if this 'sys-root' path mimics a windows-directory structure, that
has no advantage whatsoever for the freepascal compiler.

> > >   http://fedoraproject.org/wiki/Packaging/MinGW
> > 
> > Another thing, the MinGW packaging guidelines needs the packages to have
> > a 'MinGw' prefix, not suffix.
> > 
> > My example used a suffix, like 'fpc-win32'. Do you think I should use
> > 'win32-fpc' instead? Again: this sounds logical when you have a complete
> > build-environment or something like that. But in this case I think
> > 'fpc-win32' is more logical.
> 
> You should use a prefix so that autoconf knows how to find your
> cross-compiler.  Read the documentation for AC_CHECK_TOOL.

Autoconf? With Pascal? What's next, using 'make'? ;)

You don't need those tools with Pascal, there's no need for makefiles
because of the unit-system.

Also, there's no separate compiler-executable for cross compiling to
windows. The 'normal' compiler is able to compile for each OS which is
supported, as long as the architecture stays the same. (for i386-arm you
need a cross-compiler) You can do 'fpc --OS_TARGET=darwin' and you'll
get a OS/X executable. Well, that is, if the linker (ld) supports darwin
as a target. For windows the fpc-compiler has a build-in linker, so even
that is not necessary.

The extra package what I want to make consist only of the pre-compiled
run time library (rtl and fcl). 

Joost.








More information about the fedora-devel-list mailing list