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

Re: toolchains



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1


> +++ Nikita V. Youshchenko [04-06-03 23:02 +0400]:
> > Currently:
> > - - cross-binutils build ok and work for all debian archs as targets
> > - - gcc-3.3 and 3.4 build ok for alpha, arm, ia64, m68k, mips, mipsel,
> > and powerpc targets; hppa (both 3.3 and 3.4), s390 (both 3.3 and 3.4),
> > and sparc (3.3 only) fail, I'll try to fix them in near future
> > - - dpkg-cross 1.14.5 can convert base libraries
> > (linux-lernel-headers, libdb1-compat, libc6, libc6-dev) for all debian
> > archs.
> > - - libgcc1-*-cross and libstdc++*-cross are created while cross-gcc
> > is being built.
> > So everything necessary for basic C and C++ development at least for 7
> > mentioned targets seems to be ready.
> >
> > A simple script may be used to build a set of packages.
> > One that I used for testing is attached (patch for gcc should not be
> > needed with version currently in sid).
>
> OK. I've nearly got this working here too, but I don't know what the
> 'patch' referred to for gcc-3.3 and gcc-3.4 is. I've got the binutils
> one from one of your bugreps. I searched the bugreps for a gcc patch but
> failed to find it. Can you give me a pointer please.

Those patches fix powerpc target build.
Both are attached.
I've sent them to gcc maintainer; one for gcc-3.3 was applied to official 
gcc-3.3  3.3.4-1 package (so it is not needed if you use that or later 
version).

I'm thinking of enabling/fixing cross-compiler builds also for gcc-2.95 and 
gcc-snapshot packages. What do you think of those?

> As soon as I've reproduced your builds I'll transfer the stuff to the
> new emdebian buildd server so there is a 'standard' place to get
> apt-able toolchains.

I've uploaded some binary debs to my repository 
(http://zigzag.lvk.cs.msu.su/~nikita/debian); they are apt-gettable from 
there now.

But emdebian server is probably a better place.

> Shall we build all of the above archs or is a subset sufficient?

I don't know what targets are really needed for embedded developers, but I 
see no harm if all targets that build ok will be available.

Nikita

P.S.
What to do with dpkg-cross? Sid STILL has broken 1.14 ...

Well, there still are some items in my TODO with it:
- - make README.Debain up-to-date: this 33k text document has tons of 
obsolete information, so I feel I should do a massive rewrite :(
- - make it support 64bit targets - should be trivial, but I first should 
find out exact requirements
- - make it possible not only to define vars in /etc/dpkg/cross-compile, but 
also to undefine those defined by default. There is a wishlist bug on 
that; first I wrote there that I see no rationale for that, but after I 
became more familiar with dpkg-cross, I tend to agree with bug's submitter
- - (probably) add apt-get wrapper for installation updates
- - (probably) look how it works with hurd target(s)

But none of those is important enough to delay upload.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (GNU/Linux)

iD8DBQFAyLWcsTbPknTfAB4RAvs9AJ9BIpxO77Gr1RQEAAhoIgnWmc9OcACfdExS
SPxDBcKZbKtIEWer8ofQm4I=
=3DVf
-----END PGP SIGNATURE-----
diff -urN debian.orig/control.m4 debian/control.m4
--- debian.orig/control.m4	2004-05-29 23:09:10.000000000 +0400
+++ debian/control.m4	2004-05-29 23:19:10.000000000 +0400
@@ -36,7 +36,7 @@
 Uploaders: Matthias Klose <doko@debian.org>, Gerhard Tonn <gt@debian.org>
 Standards-Version: 3.6.1
 ifdef(`TARGET',`dnl cross
-Build-Depends: LIBC_BUILD_DEP, m4, autoconf2.13, automake1.4 | automake (<< 1.5), libtool, autotools-dev, gawk, dpkg-cross, binutils`'TS
+Build-Depends: LIBC_BUILD_DEP, m4, autoconf2.13, automake1.4 | automake (<< 1.5), libtool, autotools-dev, gawk, dpkg-cross (>= 1.14.5), binutils`'TS
 ',`dnl native
 Build-Depends: LIBC_BUILD_DEP, libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], m4, autoconf2.13, automake1.4 | automake (<< 1.5), libtool, autotools-dev, gawk, dejagnu (>= 1.4.3) [check_no_archs], expect (>= 5.38.0) [check_no_archs], bzip2, BINUTILS_BUILD_DEP, binutils-hppa64 [hppa], debhelper (>= 3.0.25), gperf (>= 2.7-3), bison (>= 1:1.875a-1) | bison (<< 1:1.50), flex-old | flex (<< 2.5.31), gettext, texinfo (>= 4.3), zlib1g-dev, libgc-dev [libgc_no_archs], xlibs-dev, gnat-3.3 [ada_no_archs] | gnat-3.2 [ada_no_archs] | gnat [i386 powerpc sparc], libncurses5-dev [pascal_no_archs], libgmp3-dev, tetex-bin [pascal_no_archs], locales [locale_no_archs !hurd-i386], gcc-2.95 [m68k], procps [check_no_archs], help2man, sharutils
 Build-Depends-Indep: doxygen (>= 1.3.6.20040222)
diff -urN debian.orig/README.cross debian/README.cross
--- debian.orig/README.cross	2004-05-29 23:09:10.000000000 +0400
+++ debian/README.cross	2004-05-29 23:18:21.000000000 +0400
@@ -41,6 +41,11 @@
 The resulting library packages follow the same convensions as library packages
 converted by dpkg-cross.
 
+Note that dpkg-shlibdeps wrapper provided by dpkg-cross used to have a bug that
+caused cross-compiler build to fail if libgcc1-$(TARGET)-cross package is not
+installed. This bug was fixed in (unofficial) version 1.14.5 of dpkg-cross,
+currently available from http://zigzag.lvk.cs.msu.su/~nikita/debian/.
+
 1.2. kernel-headers package for the target architecture
 
 It is not recommended to use kernel-headers for the host architecture,
@@ -48,6 +53,8 @@
 
 The easiest way is to convert kernel-headers debian package for the target
 architecture using dpkg-cross, and install the resulting package.
+Unfortunately, dpkg-cross versions prior to (unofficial) 1.14.1 failed
+to process linux-kernel-headers package, so please use newer versions.
 
 1.3. libc for the target architecture
 
diff -urN debian.orig/rules2 debian/rules2
--- debian.orig/rules2	2004-05-29 23:09:10.000000000 +0400
+++ debian/rules2	2004-05-29 23:09:28.000000000 +0400
@@ -884,8 +884,10 @@
   include debian/rules.d/binary-libstdcxx-cross.mk
 endif
 
-ifeq ($(DEB_TARGET_ARCH),powerpc)
-  include debian/rules.d/binary-nof-cross.mk
+ifeq ($(with_libnof), yes)
+  ifeq ($(DEB_TARGET_ARCH),powerpc)
+    include debian/rules.d/binary-nof-cross.mk
+  endif
 endif
 
 ifeq ($(with_cdev),yes)
diff -urN debian.orig/control.m4 debian/control.m4
--- debian.orig/control.m4	2004-05-29 23:23:57.000000000 +0400
+++ debian/control.m4	2004-05-29 23:22:53.000000000 +0400
@@ -36,7 +36,7 @@
 Uploaders: Matthias Klose <doko@debian.org>, Gerhard Tonn <gt@debian.org>
 Standards-Version: 3.6.1
 ifdef(`TARGET',`dnl cross
-Build-Depends: LIBC_BUILD_DEP, m4, autoconf2.13, automake1.7, libtool, autotools-dev, gawk, dpkg-cross, binutils`'TS
+Build-Depends: LIBC_BUILD_DEP, m4, autoconf2.13, automake1.7, libtool, autotools-dev, gawk, dpkg-cross (>= 1.14.5), binutils`'TS
 ',`dnl native
 Build-Depends: LIBC_BUILD_DEP, libc6-dev-sparc64 [sparc], libc6-dev-s390x [s390], m4, autoconf2.13, autoconf, automake1.4, automake1.7, libtool, autotools-dev, gawk, dejagnu (>= 1.4.3) [check_no_archs], expect (>= 5.38.0) [check_no_archs], bzip2, BINUTILS_BUILD_DEP, binutils-hppa64 [hppa], debhelper (>= 4.1), gperf (>= 2.7-3), bison (>= 1:1.875a-1) | bison (<< 1:1.50), flex, gettext, texinfo (>= 4.3), zlib1g-dev, libgc-dev [libgc_no_archs], xlibs-dev, gnat-3.3 [ada_no_archs] | gnat-3.4 [ada_no_archs] | gnat [i386 powerpc sparc], libncurses5-dev [pascal_no_archs], libgmp3-dev, tetex-bin [pascal_no_archs], locales [locale_no_archs !hurd-i386], gcc-2.95 [m68k], procps [check_no_archs], help2man [pascal_no_archs], sharutils, libgtk2.0-dev [java_no_archs], libart-2.0-dev [java_no_archs], g++-3.3, g77-3.3, gobjc-3.3
 Build-Depends-Indep: doxygen (>= 1.3.7)
diff -urN debian.orig/README.cross debian/README.cross
--- debian.orig/README.cross	2004-05-29 23:23:57.000000000 +0400
+++ debian/README.cross	2004-05-29 23:21:52.000000000 +0400
@@ -41,6 +41,11 @@
 The resulting library packages follow the same convensions as library packages
 converted by dpkg-cross.
 
+Note that dpkg-shlibdeps wrapper provided by dpkg-cross used to have a bug that
+caused cross-compiler build to fail if libgcc1-$(TARGET)-cross package is not
+installed. This bug was fixed in (unofficial) version 1.14.5 of dpkg-cross,
+currently available from http://zigzag.lvk.cs.msu.su/~nikita/debian/.
+
 1.2. kernel-headers package for the target architecture
 
 It is not recommended to use kernel-headers for the host architecture,
@@ -48,6 +53,8 @@
 
 The easiest way is to convert kernel-headers debian package for the target
 architecture using dpkg-cross, and install the resulting package.
+Unfortunately, dpkg-cross versions prior to (unofficial) 1.14.1 failed
+to process linux-kernel-headers package, so please use newer versions.
 
 1.3. libc for the target architecture
 
diff -urN debian.orig/rules2 debian/rules2
--- debian.orig/rules2	2004-05-29 23:23:57.000000000 +0400
+++ debian/rules2	2004-05-29 23:21:52.000000000 +0400
@@ -790,8 +790,10 @@
   include debian/rules.d/binary-libstdcxx-cross.mk
 endif
 
-ifeq ($(DEB_TARGET_ARCH),powerpc)
-  include debian/rules.d/binary-nof-cross.mk
+ifeq ($(with_libnof), yes)
+  ifeq ($(DEB_TARGET_ARCH),powerpc)
+    include debian/rules.d/binary-nof-cross.mk
+  endif
 endif
 
 ifeq ($(with_cdev),yes)

Reply to: