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.