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

Re: emchain: Automated toolchain builder



Hector,

I managed to fix the $(binary_stamp)-libstdcxx: target in the debian/rules.d/binary-libstdcxx-cross.mk file so that the duplicated 'powerpc-cross-powerpc-cross' dependency no longer occurs. It's a rather brute force fix (I duplicated some sed code used elsewhere in the file to strip out the 'powerpc-cross' in case it already exists before it gets put back by the later sed script). I'll send you my patch after some further testing. I'm not sure why the cross version of dh_shlibdeps is incorrectly generating the dependency in the .substvars file. I didn't find any evidence that the target was geting generated twice in the build log (which could cause the sed script to run twice), so I'm assuming that somehow dh_shlibdeps is either adding it twice, or working from files that already have the 'powerpc-cross' embedded in their names.

I also think I know why the libgcc1 library is not being generated (will verify in my next build, which I'm about to kick off). I think it's because in debian/rules.defs, the 'with_libgcc' target is defined to be

with_libgcc := yes
... (and later)
with_libgcc := built from gcc-4.0 sources

This I think will prevent the library from being added as a dependency of the build later on. If I am right, do you know if there is a specific reason why this library was excluded from the build with gcc-3.4? You mentioned something about using the one from gcc-4.0. Was that because there is a specific problem with the one from gcc-3.4?

I just wanted you to know I have a workaround so you don't waste any time on it.

Thanks,

-Jim

Jim Heck - Sun Microsystems wrote:
Hector,

Thanks for all your help so far.

I found one other thing that may be of interest to you concerning the gcc-3.4 libstdc++6-powerpc-cross package. There is a typo in the generated dependencies of the package (see below, powerpc-cross is duplicated). I tried to analyze and my best guess is that there is a problem with the sed scripts that modify this in the debian/rules.d/binary-libstdcxx-cross.mk file (or at least I think that is where the problem arises, I couldn't quite make sense of how that all works).

As I said in my last message, this dependency called out should be for libgcc1-powerpc-cross, which as I mentioned doesn't get built for some reason. I tried satisfying the dependency as you suggested using a library from gcc-4.1, but the typo prevented the dependency from being met.

Let me know if I should file this as a bug against gcc-3.4 or not.

Thanks,

-Jim

Here is a dump using dpkg -I of the built library.

jheck@heckmobile:/usr/src/cross-toolchain-3.4$ dpkg -I libstdc++6-powerpc-cross_3.4.6-4_all.deb
new debian package, version 2.0.
size 334952 bytes: control archive= 817 bytes.
    804 bytes,    22 lines      control
    342 bytes,     4 lines      md5sums
     34 bytes,     1 lines      shlibs
Package: libstdc++6-powerpc-cross
Version: 3.4.6-4
Section: devel
Priority: extra
Architecture: all
Depends: gcc-3.4-base (= 3.4.6-4), libc6-powerpc-cross (>= 2.3.5-1), libgcc1-powerpc-cross-powerpc-cross (>= 3.4.4)
Conflicts: libstdc++6-0
Replaces: libstdc++6-0
Provides: libstdc++6-powerpc-dcv1
Installed-Size: 1036
Maintainer: Debian GCC Maintainers <debian-gcc@lists.debian.org>
Source: gcc-3.4
Description: The GNU Standard C++ Library v3
 This package contains an additional runtime library for C++ programs
 built with the GNU compiler.
 .
 libstdc++-v3 is a complete rewrite from the previous libstdc++-v2, which
 was included up to g++-2.95. The first version of libstdc++-v3 appeared
 in g++-3.0.
 .
This package contains files for powerpc architecture, for use in cross-compile environment.






Reply to: