Including windows-binary files for cross compiling into package

Richard W.M. Jones rjones at redhat.com
Fri Nov 6 08:18:21 UTC 2009


On Thu, Nov 05, 2009 at 04:44:10PM +0100, Joost van der Sluis wrote:
> 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?

Not necessarily.  i686-pc-mingw32-gcc keeps its own internal
object files (libgcc.a etc) under /usr/lib{,64} also.

> 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.

It's nothing to do with what Windows needs.  The directory is used
because the upstream gcc/mingw toolchain requires it.  The sys-root
directory is neither used by, nor exported to Windows (in fact,
Windows is not involved at any point in the process).

> > 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.

Well OCaml has an integrated build system but still uses autotools, so
it's not such a surprising thing.  Using autotools has other
advantages - it's not merely a fancy version of 'make'.

What happens if a project isn't written entirely in Pascal?  What
happens if you need to detect if the Pascal compiler is installed?

Rich.

-- 
Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones
virt-p2v converts physical machines to virtual machines.  Boot with a
live CD or over the network (PXE) and turn machines into Xen guests.
http://et.redhat.com/~rjones/virt-p2v




More information about the fedora-devel-list mailing list