[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: emchain -u -a $(dpkg-architecture -qDEB_BUILD_ARCH) aka. $arch_glibc->$arch_uclibc compilers

On Sun, 2008-06-15 at 18:47 +0200, Bernhard Fischer wrote:
> Hi,
> I'm thinking about building me a toolchain with uClibc but i'm facing
> some loose ends here and there. I'm aware that this may be a usecase
> that could be considered erm.. uncommon -- i don't think it is but i'm
> biased.

that's fine - at the moment almost anything except 'arm-linux-gnu' is
"uncommon" with emdebian-tools currently, sadly. 

In particular, the uClibc stuff is experimental in the full meaning of
the term. :-)

> I'm asking for comments, please do not apply anything but 3) and 4) just
> yet.

3) certainly does need to be applied and I will do so asap.

> 1) dpkg-architecture et al. seem to treat i?86 as i386 which is fine per
> se, but implies that for glibc->uclibc compilers running on (and
> targeting) the same arch, one has to be careful in the logic that
> decides which packages are available on the mirrors and which are not:
> # COLUMNS=150 dpkg -l "gcc-???-i?86-linux-*" | awk '{if (/gcc/)print $2}'
> gcc-4.2-i486-linux-gnu-base
> gcc-4.3-i486-linux-gnu
> gcc-4.3-i486-linux-uclibc
> Since dpkg-cross, dpkg-architecture etc don't like "i486" as an arch,
> one has to resort to using i386, like:
> emchain -u -l -v -v -a i386

There may be a bug there - in dpkg or wherever - if gcc thinks that it
can create i486 when dpkg will not accept it. Probably a disjuncture
between gcc upstream and Debian dpkg maintenance.

> 3) bugfix "arm"
> This snippet:
> -       my $gccspecs = `arm-linux-gnu-gcc -dumpspecs`;
> +       my $gccspecs = `$arch-linux-gnu-gcc -dumpspecs`;

Ah, yes, that's a typo. Thanks for spotting it, I will fix that in

> 4) bugfix divert
> dpkg-divert didn't work for me. I fixed this up 

Is there a patch for that fix up? Is just changing the diversion name
really sufficient?

> and changed the
> diversion-name to \.glibc from formerly \.gcc to make it more obvious
> what purpose the diversion had.

> When adding, default is --local and --divert <original>.distrib.
> When removing, --package or --local and --divert must match if
> specified.
> Package preinst/postrm scripts should always specify --package and
> --divert.
> dpkg: error processing gcc-4.3-i486-linux-uclibc_4.3.1-2_all.deb

_all.deb ? I should have checked that - Simon, can the uclibc compiler
really be Architecture: all ???

> (--install):
>  subprocess pre-installation script returned error exit status 2
> No diversion `diversion of /usr/lib/gcc/i486-linux-gnu/4.3.1/specs by
> gcc-4.3-i486-linux-uclibc', none removed
> Errors were encountered while processing:
>  gcc-4.3-i486-linux-uclibc_4.3.1-2_all.deb
> # echo $?
> 1

Neil Williams

Attachment: signature.asc
Description: This is a digitally signed message part

Reply to: