Re: cross compiler deb package question
On Wednesday 22 January 2003 21:18, Daniel Schepler wrote:
> I was actually starting some work on this, too. I've gotten as far as
> getting the kernel to boot in Bochs and run a statically linked
> version of dash. I was planning to start more work on it tonight: set
> aside a large amount of disk space for the Bochs disk image, cross
> compile coreutils, binutils, gcc, etc.
Cool. Can you post the .config you used for your kernel?
> BTW, I found that the gcc build gave me endless problems unless I
> passed --disable-multilib to configure. Also, it wants to link
> libgcc_s.so against -lc, while glibc wants to link against libgcc.a,
> so you won't be able to compile either all the way through the first
> time.
I solved this by installing the glibc rpm package from ftp.suse.com
and bootstrapping gcc from there. The gcc and glibc packages on my
page are now independent from that and only need each other (and
biarch binutils). I had to make some changes to gcc files to allow
making 32 bit output the default. Appearantly all the others so
far have gcc installed as a native x86_64 compiler with an extra
32 bit mode.
> > Now, my question is: should it be installed in prefix=/usr or /opt or
> > /usr/local. I understand that the debian-way (TM) is to instal in /usr,
> > but this is a less then usual package, no?
> >
> > Moreover, what should I call the package? x86-64-gcc-3.2.i386.deb?
>
> How about gcc-x86-64 instead? Iirc at one point there were
> binutils-m68k packages, and there's currently binutils-multiarch
> (though I don't think that includes x86-64 support atm).
On s390 and sparc, there is only one compiler for both, which makes
perfect sense to me (I mostly copied the changes from s390, which
copied them from sparc).
The more important question imho is how to package libraries.
So far we have three different schemes (and more are possible):
- libgcc and libstdc++ have both 32 bit and 64 bit libraries in
one .deb,
- libc6 has extra libc6-x86-64 and libc6-dev-x86-64 packages, which
contain only 64 bit parts, while the 32 bit packages also contain
files that are always needed (=> libc6-x86-64 depends on libc6)
- libncurses has packages for both 64 and 32 bit and another one
for the common files (=>libncurses5 and libncurses5-64 both
depend on ncurses-base, but not on each other)
> (though I don't think that includes x86-64 support atm).
Right. See my binutils patch for this.
Arnd <><
Reply to: