All of lore.kernel.org
 help / color / mirror / Atom feed
* nof/libgcc_s.so installed instead of libgcc_s.so on powerpc
@ 2009-06-15 14:34 Matteo Fortini
  2009-06-15 15:03 ` Leon Woestenberg
  0 siblings, 1 reply; 9+ messages in thread
From: Matteo Fortini @ 2009-06-15 14:34 UTC (permalink / raw)
  To: openembedded-devel@openembedded.org

I'm building the Angstrom console-image on a powerpc (mpc5121) with 
stable/2009.

the gcc version which is built by default is 4.2.4R5

I specified TARGET_FPU="hard" in the machine description recipe.

However, the libgcc_s.so version which is packaged is from the nof/ dir, 
so that I get funny errors runtime for functions which were referenced 
in the code and were linked ok as external at compile time, but can't be 
found in the nof version of the lib.

Why is it behaving like this?




^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: nof/libgcc_s.so installed instead of libgcc_s.so on powerpc
  2009-06-15 14:34 nof/libgcc_s.so installed instead of libgcc_s.so on powerpc Matteo Fortini
@ 2009-06-15 15:03 ` Leon Woestenberg
  2009-06-15 15:21   ` Matteo Fortini
  0 siblings, 1 reply; 9+ messages in thread
From: Leon Woestenberg @ 2009-06-15 15:03 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel@openembedded.org

Hello Matteo,

On Mon, Jun 15, 2009 at 4:34 PM, Matteo Fortini<matteo.fortini@mta.it> wrote:
> I'm building the Angstrom console-image on a powerpc (mpc5121) with
> stable/2009.
>
Just to be sure: You are building OpenEmbedded *on* a MPC5121 platform?

For what machine are you building?

Regards,

Leon.



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: nof/libgcc_s.so installed instead of libgcc_s.so on powerpc
  2009-06-15 15:03 ` Leon Woestenberg
@ 2009-06-15 15:21   ` Matteo Fortini
  2009-06-18  6:09     ` Khem Raj
  0 siblings, 1 reply; 9+ messages in thread
From: Matteo Fortini @ 2009-06-15 15:21 UTC (permalink / raw)
  To: openembedded-devel@openembedded.org

I'm building on i686 a cross compiler for the mpc5121.

The machine description I'm using is:

TARGET_ARCH = "powerpc"
TARGET_FPU = "hard"

PREFERRED_PROVIDER_virtual/kernel = "linux-${MACHINE}"
PREFERRED_PROVIDER_virtual/kernel = "linux"

MACHINE_FEATURES = "kernel26 usbhost alsa touchscreen"

#don't try to access tty1
USE_VT = "0"

SERIAL_CONSOLE = "115200 ttyPSC0"

EXTRA_IMAGECMD_jffs2 = "--pad --big-endian --eraseblock=0x020000 -v -x lzo"

#tune for the MPC5121e cpu
require conf/machine/include/tune-ppce300c3.inc


Leon Woestenberg ha scritto:
> Hello Matteo,
>
> On Mon, Jun 15, 2009 at 4:34 PM, Matteo Fortini<matteo.fortini@mta.it> wrote:
>   
>> I'm building the Angstrom console-image on a powerpc (mpc5121) with
>> stable/2009.
>>
>>     
> Just to be sure: You are building OpenEmbedded *on* a MPC5121 platform?
>
> For what machine are you building?
>
> Regards,
>
> Leon.
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>
>   

-



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: nof/libgcc_s.so installed instead of libgcc_s.so on powerpc
  2009-06-15 15:21   ` Matteo Fortini
@ 2009-06-18  6:09     ` Khem Raj
  2009-06-18 15:17       ` Matteo Fortini
  0 siblings, 1 reply; 9+ messages in thread
From: Khem Raj @ 2009-06-18  6:09 UTC (permalink / raw)
  To: openembedded-devel; +Cc: openembedded-devel@openembedded.org

On Monday 15 June 2009 08:21:09 am Matteo Fortini wrote:
> I'm building on i686 a cross compiler for the mpc5121.
> 
> The machine description I'm using is:
> 
> TARGET_ARCH = "powerpc"
> TARGET_FPU = "hard"

Seems like we are missing right multilib option. Can you post
your complete gcc build log and configure options.

Thx

-Khem



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: nof/libgcc_s.so installed instead of libgcc_s.so on powerpc
  2009-06-18  6:09     ` Khem Raj
@ 2009-06-18 15:17       ` Matteo Fortini
  2009-06-27  0:59         ` Khem Raj
  0 siblings, 1 reply; 9+ messages in thread
From: Matteo Fortini @ 2009-06-18 15:17 UTC (permalink / raw)
  To: Khem Raj; +Cc: openembedded-devel@openembedded.org

[-- Attachment #1: Type: text/plain, Size: 99025 bytes --]

Here it is

Thx,
Matteo



Khem Raj ha scritto:
> On Monday 15 June 2009 08:21:09 am Matteo Fortini wrote:
>   
>> I'm building on i686 a cross compiler for the mpc5121.
>>
>> The machine description I'm using is:
>>
>> TARGET_ARCH = "powerpc"
>> TARGET_FPU = "hard"
>>     
>
> Seems like we are missing right multilib option. Can you post
> your complete gcc build log and configure options.
>
> Thx
>
> -Khem
> .
>
>   

-- 
 
 
#!/bin/sh -e
export localstatedir="/opt/OE/build/tmp.1/cross/ppce300c3/var"

export prefix="/opt/OE/build/tmp.1/cross/ppce300c3"

export CPP="gcc -E"

export mandir="/opt/OE/build/tmp.1/cross/ppce300c3/share/man"

export STRIP="strip"

export STAGING_SIPDIR="/opt/OE/build/tmp.1/staging/i686-linux/usr/share/sip"

export CONFIG_SITE="/opt/OE/org.cnh_fred.dev/site/endian-little /opt/OE/org.cnh_fred.dev/site/common-linux /opt/OE/org.cnh_fred.dev/site/common-glibc /opt/OE/org.cnh_fred.dev/site/ix86-common /opt/OE/org.cnh_fred.dev/site/common /opt/OE/org.cnh_fred.dev/site/common"

export BUILD_CXXFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2 -fpermissive"

export OBJCOPY="objcopy"

export AR="ar"

export AS="as"

export PSTAGING_ACTIVE="1"

export libexecdir="/opt/OE/build/tmp.1/cross/ppce300c3/libexec"

export RANLIB="ranlib"

export QTDIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux/qt2"

export datadir="/opt/OE/build/tmp.1/cross/ppce300c3/share"

export BUILD_CXX="ccache g++"

export SDK_LDFLAGS="-L/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-O1"

export LD="ld"

export LDFLAGS="-L/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-O1"

export TARGET_CXXFLAGS="-isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2 -fpermissive"

export MAKE="make"

export includedir="/opt/OE/build/tmp.1/cross/ppce300c3/include"

export TARGET_CPPFLAGS="-isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include"

export BUILD_CC="ccache gcc"

export BUILD_LDFLAGS="-L/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-O1"

unset TARGET_ARCH

export CXXFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2"

export STAGING_IDLDIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/idl"

export BUILD_F77="ccache g77"

export bindir="/opt/OE/build/tmp.1/cross/ppce300c3/bin"

export OBJDUMP="objdump"

export BUILD_LD="ld"

export exec_prefix="/opt/OE/build/tmp.1/cross/ppce300c3"

export oldincludedir="/opt/OE/build/tmp.1/cross/ppce300c3/include"

export CCLD="ccache gcc"

export SHELLCMDS="bash --rcfile $TERMRCFILE"

export QPEDIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux"

export BUILD_CCLD="gcc"

export base_libdir="/opt/OE/build/tmp.1/cross/ppce300c3/lib"

export PATH="/opt/OE/build/tmp.1/staging/i686-linux/usr/bin/ppce300c3-linux:/opt/OE/build/tmp.1/staging/i686-linux/usr/bin/ppce300c3-linux:/opt/OE/build/tmp.1/staging/i686-linux/usr/sbin:/opt/OE/build/tmp.1/staging/i686-linux/usr/bin:/opt/OE/build/tmp.1/cross/ppce300c3/bin:/opt/OE/build/tmp.1/staging/i686-linux/sbin:/opt/OE/build/tmp.1/staging/i686-linux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

export TARGET_CFLAGS="-isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2"

export base_bindir="/opt/OE/build/tmp.1/cross/ppce300c3/bin"

export servicedir="/opt/OE/build/tmp.1/cross/ppce300c3/srv"

export BUILD_CPP="cpp"

export SDK_CXXFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2 -fpermissive"

export sbindir="/opt/OE/build/tmp.1/cross/ppce300c3/bin"

export SDK_CFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2"

export BUILD_AR="ar"

export sharedstatedir="/opt/OE/build/tmp.1/cross/ppce300c3/com"

export F77="ccache g77"

export XDG_DATA_DIRS="/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share"

export BUILD_CFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2"

export QMAKE_MKSPEC_PATH="/opt/OE/build/tmp.1/staging/i686-linux/usr/share/qmake"

export PKG_CONFIG_DIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/pkgconfig"

export infodir="/opt/OE/build/tmp.1/cross/ppce300c3/share/info"

export libdir="/opt/OE/build/tmp.1/cross/ppce300c3/lib"

export OPIEDIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux"

export base_prefix="/opt/OE/build/tmp.1/cross/ppce300c3"

export CC="ccache gcc"

export TARGET_LDFLAGS="-L/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib -Wl,-O1 -Wl,--hash-style=gnu"

export docdir="/opt/OE/build/tmp.1/cross/ppce300c3/share/doc"

export palmqtdir="/opt/OE/build/tmp.1/cross/ppce300c3/lib/opie"

unset DISTRO

export base_sbindir="/opt/OE/build/tmp.1/cross/ppce300c3/bin"

export CXX="ccache g++"

export PKG_CONFIG_DISABLE_UNINSTALLED="yes"

export PKG_CONFIG_SYSROOT_DIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux"

export PKG_CONFIG_PATH="/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/pkgconfig:/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/pkgconfig"

unset MACHINE

export palmtopdir="/opt/OE/build/tmp.1/cross/ppce300c3/lib/opie"

export PATCH_GET="0"

export MANIFEST="/opt/OE/org.cnh_fred.dev/recipes/gcc/gcc-4.2.4/manifest"

export SDK_CPPFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include"

export BUILD_STRIP="strip"

export CFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2"

export BUILD_RANLIB="ranlib"

export sysconfdir="/opt/OE/build/tmp.1/cross/ppce300c3/etc"

export BUILD_CPPFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include"

do_fetchall() {
	base_do_fetchall

}

base_do_checkuriall() {
	:

}

populate_staging_preamble() {
	if [ "$PSTAGING_ACTIVE" = "1" ]; then
		stage-manager -p /opt/OE/build/tmp.1/staging -c /opt/OE/build/tmp.1/deploy/pstage/stamp-cache-staging -u || true
		stage-manager -p /opt/OE/build/tmp.1/cross/ppce300c3 -c /opt/OE/build/tmp.1/deploy/pstage/stamp-cache-cross -u || true
	fi

}

base_do_install() {
	:

}

do_stage() {
	oe_runmake install
	for d in info man share/doc share/locale ; do
		rm -rf /opt/OE/build/tmp.1/cross/ppce300c3/$d
	done

	# Fix a few include links so cross builds are happier
	if [ ! -e /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include/c++ ]; then
		mkdir -p /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include
		mkdir -p /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/include/c++
		ln -sf /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/include/c++ \
			/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include/
	fi

	# We use libiberty from binutils
	rm -f /opt/OE/build/tmp.1/cross/ppce300c3/lib/libiberty.a

	# We probably don't need these
	rmdir /opt/OE/build/tmp.1/cross/ppce300c3/include || :

	# We don't really need to keep this around
	# rm -rf /opt/OE/build/tmp.1/cross/ppce300c3/share but leave java there
	for d in share/man share/info;
	do
		rm -rf /opt/OE/build/tmp.1/cross/ppce300c3/$d
	done

	#fix up libsupc++ and libstdc++ la files
	for d in lib lib/nof; do
		sed -i "s|dependency_libs\s*=\s*.*|dependency_libs='-L/opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/$d -lgcc_s -lc -lm '|" /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/$d/libsupc++.la || true
		sed -i "s|dependency_libs\s*=\s*.*|dependency_libs='-L/opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/$d -lgcc_s -lc -lm '|" /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/$d/libstdc++.la || true
	done

}

base_do_package() {
	:

}

autotools_do_install() {
	oe_runmake 'DESTDIR=/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image' install

}

oe_machinstall() {
	# Purpose: Install machine dependent files, if available
	#          If not available, check if there is a default
	#          If no default, just touch the destination
	# Example:
	#                $1  $2   $3         $4
	# oe_machinstall -m 0644 fstab /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/etc/fstab
	#
	# TODO: Check argument number?
	#
	filename=`basename $3`
	dirname=`dirname $3`

	for o in `echo task-compile:local:mpc5121:fred:linux:powerpc:build-linux:fail-fast:pn-gcc-cross | tr ':' ' '`; do
		if [ -e $dirname/$o/$filename ]; then
			oenote $dirname/$o/$filename present, installing to $4
			install $1 $2 $dirname/$o/$filename $4
			return
		fi
	done
#	oenote overrides specific file NOT present, trying default=$3...
	if [ -e $3 ]; then
		oenote $3 present, installing to $4
		install $1 $2 $3 $4
	else
		oenote $3 NOT present, touching empty $4
		touch $4
	fi

}

package_stagefile_shell() {
	if [ "$PSTAGING_ACTIVE" = "1" ]; then
		srcfile=$1
		destfile=`echo $srcfile | sed s#/opt/OE/build/tmp.1#/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg#`
		destdir=`dirname $destfile`
		mkdir -p $destdir
		cp -dp $srcfile $destfile
	fi

}

die() {
	oefatal "$*"

}

base_do_buildall() {
	:

}

do_configure() {
	# Setup these vars for cross building only
	# ... because foo_FOR_TARGET apparently gets misinterpreted inside the
	# gcc build stuff when the build is producing a cross compiler - i.e.
	# when the 'current' target is the 'host' system, and the host is not
	# the target (because the build is actually making a cross compiler!)
	if [ "i686-linux" != "i686-linux" ]; then
		export CC_FOR_TARGET="ccache gcc "
		export GCC_FOR_TARGET="ccache gcc "
		export CXX_FOR_TARGET="ccache g++ "
		export AS_FOR_TARGET="as"
		export LD_FOR_TARGET="ld"
		export NM_FOR_TARGET="nm"
		export AR_FOR_TARGET="ar"
		export GFORTRAN_FOR_TARGET="gfortran"
		export RANLIB_FOR_TARGET="ranlib"
	fi
	export CC_FOR_BUILD="ccache gcc "
	export CXX_FOR_BUILD="ccache g++ "
	export CFLAGS_FOR_BUILD="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2"
	export CPPFLAGS_FOR_BUILD="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include"
	export CXXFLAGS_FOR_BUILD="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2 -fpermissive"
	export LDFLAGS_FOR_BUILD="-L/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-O1"
	export ARCH_FLAGS_FOR_TARGET="-mcpu=e300c3 -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include"
	(cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4 && gnu-configize) || die "failure running gnu-configize"

	# splice our idea of where the headers live into gcc's world
	echo "NATIVE_SYSTEM_HEADER_DIR = /usr/include" > /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp/t-oe
	sed 's%^tmake_file=.*$%& /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp/t-oe%' < /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/Makefile.in >/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/Makefile.in.new
	mv /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/Makefile.in.new /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/Makefile.in

	echo "#define STANDARD_INCLUDE_DIR \"/usr/include\"" >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/defaults.h

	oe_runconf

}

oe_runconf() {
	if [ -x /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure ] ; then
		cfgcmd="/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure \
		    --build=i686-linux \
		    --host=i686-linux \
		    --target=powerpc-linux \
		    --prefix=/opt/OE/build/tmp.1/cross/ppce300c3 \
		    --exec_prefix=/opt/OE/build/tmp.1/cross/ppce300c3 \
		    --bindir=/opt/OE/build/tmp.1/cross/ppce300c3/bin \
		    --sbindir=/opt/OE/build/tmp.1/cross/ppce300c3/bin \
		    --libexecdir=/opt/OE/build/tmp.1/cross/ppce300c3/libexec \
		    --datadir=/opt/OE/build/tmp.1/cross/ppce300c3/share \
		    --sysconfdir=/opt/OE/build/tmp.1/cross/ppce300c3/etc \
		    --sharedstatedir=/opt/OE/build/tmp.1/cross/ppce300c3/com \
		    --localstatedir=/opt/OE/build/tmp.1/cross/ppce300c3/var \
		    --libdir=/opt/OE/build/tmp.1/cross/ppce300c3/lib \
		    --includedir=/opt/OE/build/tmp.1/cross/ppce300c3/include \
		    --oldincludedir=/opt/OE/build/tmp.1/cross/ppce300c3/include \
		    --infodir=/opt/OE/build/tmp.1/cross/ppce300c3/share/info \
		    --mandir=/opt/OE/build/tmp.1/cross/ppce300c3/share/man \
			                 --with-gnu-ld                 --enable-shared                 --enable-target-optspace                 --enable-languages=c,c++,objc                 --enable-threads=posix                 --enable-multilib                 --enable-c99                 --enable-long-long                 --enable-symvers=gnu                 --enable-libstdcxx-pch                 --program-prefix=powerpc-linux-                 --enable-libssp --disable-bootstrap --enable-libgomp --disable-libmudflap                                  --with-local-prefix=/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr 		      --with-gxx-include-dir=/opt/OE/build/tmp.1/staging/ppce300c3-linux//usr/include/c++                       --with-sysroot=/opt/OE/build/tmp.1/staging/ppce300c3-linux                       --with-build-sysroot=/opt/OE/build/tmp.1/staging/ppce300c3-linux --disable-libunwind-exceptions --with-mpfr=/opt/OE/build/tmp.1/staging/i686-linux/usr --enable-__cxa_atexit \
		    $@"
		oenote "Running $cfgcmd..."
		$cfgcmd || oefatal "oe_runconf failed"
	else
		oefatal "no configure script found"
	fi

}

base_do_compile() {
	if [ -e Makefile -o -e makefile ]; then
		oe_runmake || die "make failed"
	else
		oenote "nothing to compile"
	fi

}

oewarn() {
	echo "WARNING:" "$*"

}

autotools_stage_includes() {
	if [ "${INHIBIT_AUTO_STAGE_INCLUDES}" != "1" ]
	then
		rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
		mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
		make DESTDIR="/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging" install
		cp -pPR /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/include/* /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include
		rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
	fi

}

oe_libinstall() {
	# Purpose: Install a library, in all its forms
	# Example
	#
	# oe_libinstall libltdl /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/
	# oe_libinstall -C src/libblah libblah /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image//opt/OE/build/tmp.1/cross/ppce300c3/lib/
	dir=""
	libtool=""
	silent=""
	require_static=""
	require_shared=""
	staging_install=""
	while [ "$#" -gt 0 ]; do
		case "$1" in
		-C)
			shift
			dir="$1"
			;;
		-s)
			silent=1
			;;
		-a)
			require_static=1
			;;
		-so)
			require_shared=1
			;;
		-*)
			oefatal "oe_libinstall: unknown option: $1"
			;;
		*)
			break;
			;;
		esac
		shift
	done

	libname="$1"
	shift
	destpath="$1"
	if [ -z "$destpath" ]; then
		oefatal "oe_libinstall: no destination path specified"
	fi
	if echo "$destpath/" | egrep '^/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/' >/dev/null
	then
		staging_install=1
	fi

	__runcmd () {
		if [ -z "$silent" ]; then
			echo >&2 "oe_libinstall: $*"
		fi
		$*
	}

	if [ -z "$dir" ]; then
		dir=`pwd`
	fi

	dotlai=$libname.lai

	# Sanity check that the libname.lai is unique
	number_of_files=`(cd $dir; find . -name "$dotlai") | wc -l`
	if [ $number_of_files -gt 1 ]; then
		oefatal "oe_libinstall: $dotlai is not unique in $dir"
	fi


	dir=$dir`(cd $dir;find . -name "$dotlai") | sed "s/^\.//;s/\/$dotlai\$//;q"`
	olddir=`pwd`
	__runcmd cd $dir

	lafile=$libname.la

	# If such file doesn't exist, try to cut version suffix
	if [ ! -f "$lafile" ]; then
		libname1=`echo "$libname" | sed 's/-[0-9.]*$//'`
		lafile1=$libname.la
		if [ -f "$lafile1" ]; then
			libname=$libname1
			lafile=$lafile1
		fi
	fi

	if [ -f "$lafile" ]; then
		# libtool archive
		eval `cat $lafile|grep "^library_names="`
		libtool=1
	else
		library_names="$libname.so* $libname.dll.a"
	fi

	__runcmd install -d $destpath/
	dota=$libname.a
	if [ -f "$dota" -o -n "$require_static" ]; then
		__runcmd install -m 0644 $dota $destpath/
	fi
	if [ -f "$dotlai" -a -n "$libtool" ]; then
		if test -n "$staging_install"
		then
			# stop libtool using the final directory name for libraries
			# in staging:
			__runcmd rm -f $destpath/$libname.la
			__runcmd sed -e 's/^installed=yes$/installed=no/' \
				     -e '/^dependency_libs=/s,/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/\1,g' \
				     -e "/^dependency_libs=/s,\([[:space:]']\)/opt/OE/build/tmp.1/cross/ppce300c3/lib,\1/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib,g" \
				     $dotlai >$destpath/$libname.la
		else
			__runcmd install -m 0644 $dotlai $destpath/$libname.la
		fi
	fi

	for name in $library_names; do
		files=`eval echo $name`
		for f in $files; do
			if [ ! -e "$f" ]; then
				if [ -n "$libtool" ]; then
					oefatal "oe_libinstall: $dir/$f not found."
				fi
			elif [ -L "$f" ]; then
				__runcmd cp -P "$f" $destpath/
			elif [ ! -L "$f" ]; then
				libfile="$f"
				__runcmd install -m 0755 $libfile $destpath/
			fi
		done
	done

	if [ -z "$libfile" ]; then
		if  [ -n "$require_shared" ]; then
			oefatal "oe_libinstall: unable to locate shared library"
		fi
	elif [ -z "$libtool" ]; then
		# special case hack for non-libtool .so.#.#.# links
		baselibfile=`basename "$libfile"`
		if (echo $baselibfile | grep -qE '^lib.*\.so\.[0-9.]*$'); then
			sonamelink=`readelf -d $libfile |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
			solink=`echo $baselibfile | sed -e 's/\.so\..*/.so/'`
			if [ -n "$sonamelink" -a x"$baselibfile" != x"$sonamelink" ]; then
				__runcmd ln -sf $baselibfile $destpath/$sonamelink
			fi
			__runcmd ln -sf $baselibfile $destpath/$solink
		fi
	fi

	__runcmd cd "$olddir"

}

base_do_configure() {
	:

}

oe_soinstall() {
	# Purpose: Install shared library file and
	#          create the necessary links
	# Example:
	#
	# oe_
	#
	#oenote installing shared library $1 to $2
	#
	libname=`basename $1`
	install -m 755 $1 $2/$libname
	sonamelink=`readelf -d $1 |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
	solink=`echo $libname | sed -e 's/\.so\..*/.so/'`
	ln -sf $libname $2/$sonamelink
	ln -sf $libname $2/$solink

}

do_install() {
	oe_runmake 'DESTDIR=/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image' install

	# Move libgcc_s into /lib
        mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib
        if [ -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib/libgcc_s.so.? ]; then
                # Already in the right location
                :
        elif [ -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/lib/libgcc_s.so.? ]; then
                mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/lib/libgcc_s.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib || true

        elif [  -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libgcc_s.so.? ]; then
                mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libgcc_s.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib
        else
                mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libgcc_s.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib || true
        fi



	# Move libstdc++ and libg2c into libdir (resetting our prefix to /usr
        mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib

        if [ -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libstdc++.so ]; then

           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libstdc++.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libg2c.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libgfortran*.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libssp*.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true

        else
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libstdc++.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libg2c.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libgfortran*.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libssp*.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
        fi



       # Manually run the target stripper since we won't get it run by
       # the packaging.
       if [ "x" != "x1" ]; then
               powerpc-linux-strip /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib/libstdc++.so.*
               powerpc-linux-strip /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib/libg2c.so.* || true
               powerpc-linux-strip /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib/libgcc_s.so.* || true
               powerpc-linux-strip /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib/libgfortran*.so* || true
	fi

       # Link gfortran to g77 to satisfy not-so-smart configure or hard coded g77
       # gfortran is fully backwards compatible. This is a safe and practical solution.
       if [ -f /opt/OE/build/tmp.1/cross/ppce300c3/bin/powerpc-linux-gfortran ]; then
              currdir="$PWD"
              cd /opt/OE/build/tmp.1/cross/ppce300c3/bin/
              ln -sf powerpc-linux-gfortran powerpc-linux-g77 || true
              cd /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/bin/
              ln -sf gfortran g77 || true
              cd $currdir
       fi
        for i in `find /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image -name "*.la"` ; do \
                sed -i -e '/^dependency_libs=/s,/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),/opt/OE/build/tmp.1/cross/ppce300c3/lib/\1,g' $i
                sed -i -e s:/opt/OE/build/tmp.1/cross/ppce300c3/i686-linux::g $i
                sed -i -e s:/opt/OE/build/tmp.1/cross/ppce300c3::g $i
                sed -i -e s:/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib:/opt/OE/build/tmp.1/cross/ppce300c3/lib:g $i
                sed -i -e s:/opt/OE/build/tmp.1/staging/ppce300c3-linux::g $i
                sed -i -e s:/opt/OE/build/tmp.1/staging::g $i
                sed -i -e s:/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4::g $i
                sed -i -e s:/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp::g $i
                sed -i -e s:/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image::g $i
        done

}

oenote() {
	echo "NOTE:" "$*"

}

package_update_index_ipk() {
	set -x

	ipkgarchs="all any noarch powerpc  ppce300c3 mpc5121"

	if [ ! -z "${DEPLOY_KEEP_PACKAGES}" ]; then
		return
	fi

	touch /opt/OE/build/tmp.1/deploy/ipk/Packages
	ipkg-make-index -r /opt/OE/build/tmp.1/deploy/ipk/Packages -p /opt/OE/build/tmp.1/deploy/ipk/Packages -l /opt/OE/build/tmp.1/deploy/ipk/Packages.filelist -m /opt/OE/build/tmp.1/deploy/ipk

	for arch in $ipkgarchs; do
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/$arch/ ] ; then
			touch /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages
			ipkg-make-index -r /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages -p /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages -l /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages.filelist -m /opt/OE/build/tmp.1/deploy/ipk/$arch/
		fi
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/ ] ; then
			touch /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages
			ipkg-make-index -r /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages -p /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages -l /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages.filelist -m /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/
		fi
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/ ] ; then
			touch /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages
			ipkg-make-index -r /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages -p /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages -l /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages.filelist -m /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/
		fi
	done

}

do_package_write() {
	:

}

package_generate_ipkg_conf() {
	mkdir -p /opt/OE/build/tmp.1/staging/i686-linux/etc/
	echo "src oe file:/opt/OE/build/tmp.1/deploy/ipk" > /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg.conf
	echo "src oe file:/opt/OE/build/tmp.1/deploy/ipk" > /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-sdk.conf
	echo "src oe file:/opt/OE/build/tmp.1/deploy/ipk" > /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-canadian-sdk.conf
	ipkgarchs="all any noarch powerpc  ppce300c3 mpc5121"
	priority=1
	for arch in $ipkgarchs; do
		echo "arch $arch $priority" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg.conf
		echo "arch i686-$arch-sdk $priority" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-sdk.conf
		echo "arch i686-linux-sdk-$arch $priority" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-canadian-sdk.conf
		priority=$(expr $priority + 5)
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages ] ; then
		        echo "src oe-$arch file:/opt/OE/build/tmp.1/deploy/ipk/$arch" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg.conf
		fi
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages ] ; then
		        echo "src oe-i686-$arch-sdk file:/opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-sdk.conf
		fi
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages ] ; then
		        echo "src oe-i686-linux-sdk-$arch file:/opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-canadian-sdk.conf
		fi
	done

}

base_do_fetchall() {
	:

}

staging_packager() {

	mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL
	mkdir -p /opt/OE/build/tmp.1/deploy/pstage/fred/2/.1/-opt-OE-build-tmp.1

	echo "Package: staging-gcc-cross-ppce300c3-linux"         >  /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Version: 4.2.4-r5"    >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Description: The GNU cc and gcc C compilers."      >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Section: devel"              >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Priority: Optional"               >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Maintainer: OpenEmbedded Team <openembedded-devel@lists.openembedded.org>"        >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Architecture: i686-linux"  >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control

	# Protect against empty SRC_URI
	if [ "ftp://ftp.gnu.org/gnu/gcc/gcc-4.2.4/gcc-4.2.4.tar.bz2 	file://100-uclibc-conf.patch;patch=1 	file://103-uclibc-conf-noupstream.patch;patch=1 	file://200-uclibc-locale.patch;patch=1 	file://203-uclibc-locale-no__x.patch;patch=1 	file://204-uclibc-locale-wchar_fix.patch;patch=1 	file://205-uclibc-locale-update.patch;patch=1 	file://300-libstdc++-pic.patch;patch=1 	file://301-missing-execinfo_h.patch;patch=1 	file://302-c99-snprintf.patch;patch=1 	file://303-c99-complex-ugly-hack.patch;patch=1 	file://304-index_macro.patch;patch=1 	file://305-libmudflap-susv3-legacy.patch;patch=1 	file://306-libstdc++-namespace.patch;patch=1 	file://307-locale_facets.patch;patch=1 	file://402-libbackend_dep_gcov-iov.h.patch;patch=1 	file://602-sdk-libstdc++-includes.patch;patch=1 	file://740-sh-pr24836.patch;patch=1 	file://800-arm-bigendian.patch;patch=1 	file://801-arm-bigendian-eabi.patch;patch=1 	file://904-flatten-switch-stmt-00.patch;patch=1 	file://arm-nolibfloat.patch;patch=1 	file://arm-softfloat.patch;patch=1 	file://gcc41-configure.in.patch;patch=1 	file://arm-thumb.patch;patch=1 	file://arm-thumb-cache.patch;patch=1 	file://ldflags.patch;patch=1 	file://zecke-xgcc-cpp.patch;patch=1 	file://unbreak-armv4t.patch;patch=1 	file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 	file://cache-amnesia.patch;patch=1 	file://gfortran.patch;patch=1 	file://gcc-4.0.2-e300c2c3.patch;patch=1 	file://fortran-static-linking.patch;patch=1 	file://intermask-bigendian.patch;patch=1  file://zecke-no-host-includes.patch;patch=1 " != "" ] ; then
		echo "Source: ftp://ftp.gnu.org/gnu/gcc/gcc-4.2.4/gcc-4.2.4.tar.bz2 	file://100-uclibc-conf.patch;patch=1 	file://103-uclibc-conf-noupstream.patch;patch=1 	file://200-uclibc-locale.patch;patch=1 	file://203-uclibc-locale-no__x.patch;patch=1 	file://204-uclibc-locale-wchar_fix.patch;patch=1 	file://205-uclibc-locale-update.patch;patch=1 	file://300-libstdc++-pic.patch;patch=1 	file://301-missing-execinfo_h.patch;patch=1 	file://302-c99-snprintf.patch;patch=1 	file://303-c99-complex-ugly-hack.patch;patch=1 	file://304-index_macro.patch;patch=1 	file://305-libmudflap-susv3-legacy.patch;patch=1 	file://306-libstdc++-namespace.patch;patch=1 	file://307-locale_facets.patch;patch=1 	file://402-libbackend_dep_gcov-iov.h.patch;patch=1 	file://602-sdk-libstdc++-includes.patch;patch=1 	file://740-sh-pr24836.patch;patch=1 	file://800-arm-bigendian.patch;patch=1 	file://801-arm-bigendian-eabi.patch;patch=1 	file://904-flatten-switch-stmt-00.patch;patch=1 	file://arm-nolibfloat.patch;patch=1 	file://arm-softfloat.patch;patch=1 	file://gcc41-configure.in.patch;patch=1 	file://arm-thumb.patch;patch=1 	file://arm-thumb-cache.patch;patch=1 	file://ldflags.patch;patch=1 	file://zecke-xgcc-cpp.patch;patch=1 	file://unbreak-armv4t.patch;patch=1 	file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 	file://cache-amnesia.patch;patch=1 	file://gfortran.patch;patch=1 	file://gcc-4.0.2-e300c2c3.patch;patch=1 	file://fortran-static-linking.patch;patch=1 	file://intermask-bigendian.patch;patch=1  file://zecke-no-host-includes.patch;patch=1 "               >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	else
		echo "Source: OpenEmbedded"               >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	fi

	stage-manager-ipkg-build -o 0 -g 0 /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg /opt/OE/build/tmp.1/deploy/pstage/fred/2/.1/-opt-OE-build-tmp.1

}

autotools_do_configure() {
	case gcc-cross in
	autoconf*)
	;;
	automake*)
	;;
	*)
		# WARNING: gross hack follows:
		# An autotools built package generally needs these scripts, however only
		# automake or libtoolize actually install the current versions of them.
		# This is a problem in builds that do not use libtool or automake, in the case
		# where we -need- the latest version of these scripts.  e.g. running a build
		# for a package whose autotools are old, on an x86_64 machine, which the old
		# config.sub does not support.  Work around this by installing them manually
		# regardless.
		( for ac in `find /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4 -name configure.in -o -name configure.ac`; do
			rm -f `dirname $ac`/configure
			done )
		if [ -e /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure.in -o -e /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure.ac ]; then
			olddir=`pwd`
			cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4
			if [ x"default" = xdefault ]; then
				acpaths=
				for i in `find /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4 -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
					grep -v 'acinclude.m4' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
					acpaths="$acpaths -I $i"
				done
			else
				acpaths="default"
			fi
			AUTOV=`automake --version |head -n 1 |sed "s/.* //;s/\.[0-9]\+$//"`
			automake --version
			echo "AUTOV is $AUTOV"
			install -d /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/aclocal
			install -d /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/aclocal-$AUTOV
			acpaths="$acpaths -I/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/aclocal-$AUTOV -I /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/aclocal"
			# autoreconf is too shy to overwrite aclocal.m4 if it doesn't look
			# like it was auto-generated.  Work around this by blowing it away
			# by hand, unless the package specifically asked not to run aclocal.
			if ! echo --exclude=autopoint | grep -q "aclocal"; then
				rm -f aclocal.m4
			fi
			if [ -e configure.in ]; then
			  CONFIGURE_AC=configure.in
			else
			  CONFIGURE_AC=configure.ac
			fi
			if grep "^AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
			  if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
			    : do nothing -- we still have an old unmodified configure.ac
			  else
			    oenote Executing glib-gettextize --force --copy
			    echo "no" | glib-gettextize --force --copy
			  fi
			fi
			if grep "^[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
			  oenote Executing intltoolize --copy --force --automake
			  intltoolize --copy --force --automake
			fi
			oenote Executing autoreconf --verbose --install --force --exclude=autopoint $acpaths
			mkdir -p m4
			autoreconf -Wcross --verbose --install --force --exclude=autopoint $acpaths || oefatal "autoreconf execution failed."
			cd $olddir
		fi
	;;
	esac
	if [ -e /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure ]; then
		oe_runconf $@
	else
		oenote "nothing to configure"
	fi

}

base_do_stage() {
	:

}

autotools_stage_dir() {
	from="$1"
	to="$2"
	# This will remove empty directories so we can ignore them
	rmdir "$from" 2> /dev/null || true
	if [ -d "$from" ]; then
		mkdir -p "$to"
		cp -fpPR "$from"/* "$to"
	fi

}

autotools_stage_all() {
	if [ "${INHIBIT_AUTO_STAGE}" = "1" ]
	then
		return
	fi
	rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
	mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
	oe_runmake DESTDIR="/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging" install
	autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/include /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include
	if [ "i686-linux" = "i686-linux" ]; then
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/bin /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/bin
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/bin /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/sbin
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/bin /opt/OE/build/tmp.1/staging/ppce300c3-linux/bin
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/bin /opt/OE/build/tmp.1/staging/ppce300c3-linux/sbin
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/libexec /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/libexec
		if [ "/opt/OE/build/tmp.1/cross/ppce300c3/lib" != "/opt/OE/build/tmp.1/cross/ppce300c3/lib" ]; then
			# python puts its files in here, make sure they are staged as well
			autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib
		fi
	fi
	if [ -d /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib ]
	then
		olddir=`pwd`
		cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib
		las=$(find . -name \*.la -type f)
		cd $olddir
		echo "Found la files: $las"
		for i in $las
		do
			sed -e 's/^installed=yes$/installed=no/' \
			    -e '/^dependency_libs=/s,/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*.la\),/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/\1,g' \
			    -e '/^dependency_libs=/s,/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib,g' \
			    -e "/^dependency_libs=/s,\([[:space:]']\)/opt/OE/build/tmp.1/cross/ppce300c3/lib,\1/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib,g" \
			    -i /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib/$i
		done
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib
	fi
	# Ok, this is nasty. pkgconfig.bbclass is usually used to install .pc files,
	# however some packages rely on the presence of .pc files to enable/disable
	# their configurataions in which case we better should not install everything
	# unconditionally, but rather depend on the actual results of make install.
	# The good news though: a) there are not many packages doing this and
	# b) packaged staging will fix that anyways. :M:
	if [ "${AUTOTOOLS_STAGE_PKGCONFIG}" = "1" ]
	then
		if [ -e /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib/pkgconfig/ ] ; then
			echo "cp -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib/pkgconfig/*.pc /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/pkgconfig/"
			cp -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib/pkgconfig/*.pc /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/pkgconfig/
		fi
	fi
	rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/share/man || true
	rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/share/info || true
	autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/share /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share
	rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging

}

ldconfig_postinst_fragment() {
if [ x"$D" = "x" ]; then
	if [ -e /etc/ld.so.conf ] ; then
		[ -x /sbin/ldconfig ] && /sbin/ldconfig
	fi
fi

}

do_compile() {
	export CC="ccache gcc "
	export AR_FOR_TARGET="powerpc-linux-ar"
	export RANLIB_FOR_TARGET="powerpc-linux-ranlib"
	export LD_FOR_TARGET="powerpc-linux-ld"
	export NM_FOR_TARGET="powerpc-linux-nm"
	export CC_FOR_TARGET="ccache  powerpc-linux-gcc -mcpu=e300c3"
	base_do_compile

}

staging_helper() {
	# Assemble appropriate opkg.conf
	conffile=/opt/OE/build/tmp.1/deploy/pstage/opkg.conf
	mkdir -p /opt/OE/build/tmp.1/deploy/pstage/pstaging_lists
	if [ ! -e $conffile ]; then
		ipkgarchs="i686-linux"
		priority=1
		for arch in $ipkgarchs; do
			echo "arch $arch $priority" >> $conffile
			priority=$(expr $priority + 5)
		done
		echo "dest root /" >> $conffile
	fi
	if [ ! -e /opt/OE/build/tmp.1/usr/lib/opkg/info/ ]; then
		mkdir -p /opt/OE/build/tmp.1/usr/lib/opkg/info/
	fi
 	if [ ! -e /opt/OE/build/tmp.1/usr/lib/ipkg/ ]; then
		cd /opt/OE/build/tmp.1/usr/lib/
		ln -sf opkg/ ipkg
	fi

}

populate_staging_postamble() {
	if [ "$PSTAGING_ACTIVE" = "1" ]; then
		# list the packages currently installed in staging
		# stage-manager-ipkg -f /opt/OE/build/tmp.1/deploy/pstage/opkg.conf -o /opt/OE/build/tmp.1 list_installed | awk '{print $1}' > /opt/OE/build/tmp.1/deploy/pstage/installed-list

		# exitcode == 5 is ok, it means the files change
		set +e
		stage-manager -p /opt/OE/build/tmp.1/staging -c /opt/OE/build/tmp.1/deploy/pstage/stamp-cache-staging -u -d /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/staging
		exitcode=$?
		if [ "$exitcode" != "5" -a "$exitcode" != "0" ]; then
			exit $exitcode
		fi
		stage-manager -p /opt/OE/build/tmp.1/cross/ppce300c3 -c /opt/OE/build/tmp.1/deploy/pstage/stamp-cache-cross -u -d /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/cross
		if [ "$exitcode" != "5" -a "$exitcode" != "0" ]; then
			exit $exitcode
		fi
		set -e
	fi

}

oedebug() {
	test $# -ge 2 || {
		echo "Usage: oedebug level \"message\""
		exit 1
	}

	test ${OEDEBUG:-0} -ge $1 && {
		shift
		echo "DEBUG:" $*
	}

}

oe_runmake() {
	if [ x"$MAKE" = x ]; then MAKE=make; fi
	oenote make -j 6  ARCH_FLAGS_FOR_TARGET='-mcpu=e300c3 -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include' "$@"
	make -j 6  ARCH_FLAGS_FOR_TARGET='-mcpu=e300c3 -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include' "$@" || die "oe_runmake failed"

}

do_package_stage_all() {
	:

}

staging_package_installer() {
	#stage-manager-ipkg -f /opt/OE/build/tmp.1/deploy/pstage/opkg.conf -force-depends -o /opt/OE/build/tmp.1 install /opt/OE/build/tmp.1/deploy/pstage/fred/2/.1/-opt-OE-build-tmp.1/staging-gcc-cross-ppce300c3-linux_4.2.4-r5_i686-linux.ipk

	STATUSFILE=/opt/OE/build/tmp.1/usr/lib/opkg/status
	echo "Package: staging-gcc-cross-ppce300c3-linux"        >> $STATUSFILE
	echo "Version: 4.2.4-r5"   >> $STATUSFILE
	echo "Status: install user installed"  >> $STATUSFILE
	echo "Architecture: i686-linux" >> $STATUSFILE
	echo "" >> $STATUSFILE

	CTRLFILE=/opt/OE/build/tmp.1/usr/lib/opkg/info/staging-gcc-cross-ppce300c3-linux.control
	echo "Package: staging-gcc-cross-ppce300c3-linux"        > $CTRLFILE
	echo "Version: 4.2.4-r5"   >> $CTRLFILE
	echo "Architecture: i686-linux" >> $CTRLFILE

	cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg
	find -type f | grep -v ./CONTROL | sed -e 's/^\.//' > /opt/OE/build/tmp.1/usr/lib/opkg/info/staging-gcc-cross-ppce300c3-linux.list

}

oefatal() {
	echo "FATAL:" "$*"
	exit 1

}

MIRRORS() {
ftp://ftp.gnu.org/gnu/gcc/releases/    ftp://gcc.gnu.org/pub/gcc/releases/
ftp://ftp.gnu.org/gnu/gcc/	http://mirrors.rcn.net/pub/sourceware/gcc/releases/
ftp://ftp.gnu.org/gnu/gcc/releases/    http://gcc.get-software.com/releases/
ftp://ftp.gnu.org/gnu/gcc/	http://gcc.get-software.com/releases/
ftp://ftp.debian.org/debian/pool/main	http://snapshot.debian.net/archive/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.de.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.au.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.cl.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.hr.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.fi.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.hk.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.hu.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.ie.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.it.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.jp.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.no.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.pl.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.ro.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.si.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.es.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.se.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.tr.debian.org/debian/pool
ftp://ftp.gnu.org/gnu	ftp://mirrors.kernel.org/gnu
ftp://ftp.gnu.org/gnu	ftp://ftp.matrix.com.br/pub/gnu
ftp://ftp.gnu.org/gnu	ftp://ftp.cs.ubc.ca/mirror2/gnu
ftp://ftp.gnu.org/gnu	ftp://sunsite.ust.hk/pub/gnu
ftp://ftp.gnu.org/gnu	ftp://ftp.ayamura.org/pub/gnu
http://kernel.org	http://www.kernel.org/pub
http://kernel.org	ftp://ftp.us.kernel.org/pub
http://kernel.org	ftp://ftp.uk.kernel.org/pub
http://kernel.org	ftp://ftp.hk.kernel.org/pub
http://kernel.org	ftp://ftp.au.kernel.org/pub
http://kernel.org	ftp://ftp.jp.kernel.org/pub
ftp://ftp.gnupg.org/gcrypt/     ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/
ftp://ftp.gnupg.org/gcrypt/     ftp://ftp.surfnet.nl/pub/security/gnupg/
ftp://ftp.gnupg.org/gcrypt/     http://gulus.USherbrooke.ca/pub/appl/GnuPG/
ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN
ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/
ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/
ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.gnutls.org/pub/gnutls/
ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.gnupg.org/gcrypt/gnutls/
ftp://ftp.gnutls.org/pub/gnutls http://www.mirrors.wiretapped.net/security/network-security/gnutls/
ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.mirrors.wiretapped.net/pub/security/network-security/gnutls/
ftp://ftp.gnutls.org/pub/gnutls http://josefsson.org/gnutls/releases/
http://ftp.info-zip.org/pub/infozip/src/ http://mirror.switch.ch/ftp/mirror/infozip/src/
http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tau.ac.il/pub/unix/admin/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cert.dfn.de/pub/tools/admin/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.kaizo.org/pub/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tu-darmstadt.de/pub/sysadmin/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tux.org/pub/sites/vic.cc.purdue.edu/tools/unix/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://gd.tuwien.ac.at/utils/admin-tools/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://sunsite.ualberta.ca/pub/Mirror/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://the.wiretapped.net/pub/security/host-security/lsof/
http://www.apache.org/dist  http://archive.apache.org/dist


}

cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/build.i686-linux.powerpc-linux
do_compile
#!/bin/sh -e
export localstatedir="/opt/OE/build/tmp.1/cross/ppce300c3/var"

export prefix="/opt/OE/build/tmp.1/cross/ppce300c3"

export CPP="gcc -E"

export mandir="/opt/OE/build/tmp.1/cross/ppce300c3/share/man"

export STRIP="strip"

export STAGING_SIPDIR="/opt/OE/build/tmp.1/staging/i686-linux/usr/share/sip"

export CONFIG_SITE="/opt/OE/org.cnh_fred.dev/site/endian-little /opt/OE/org.cnh_fred.dev/site/common-linux /opt/OE/org.cnh_fred.dev/site/common-glibc /opt/OE/org.cnh_fred.dev/site/ix86-common /opt/OE/org.cnh_fred.dev/site/common /opt/OE/org.cnh_fred.dev/site/common"

export BUILD_CXXFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2 -fpermissive"

export OBJCOPY="objcopy"

export AR="ar"

export AS="as"

export PSTAGING_ACTIVE="1"

export libexecdir="/opt/OE/build/tmp.1/cross/ppce300c3/libexec"

export RANLIB="ranlib"

export QTDIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux/qt2"

export datadir="/opt/OE/build/tmp.1/cross/ppce300c3/share"

export BUILD_CXX="ccache g++"

export SDK_LDFLAGS="-L/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-O1"

export LD="ld"

export LDFLAGS="-L/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-O1"

export TARGET_CXXFLAGS="-isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2 -fpermissive"

export MAKE="make"

export includedir="/opt/OE/build/tmp.1/cross/ppce300c3/include"

export TARGET_CPPFLAGS="-isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include"

export BUILD_CC="ccache gcc"

export BUILD_LDFLAGS="-L/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-O1"

unset TARGET_ARCH

export CXXFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2"

export STAGING_IDLDIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/idl"

export BUILD_F77="ccache g77"

export bindir="/opt/OE/build/tmp.1/cross/ppce300c3/bin"

export OBJDUMP="objdump"

export BUILD_LD="ld"

export exec_prefix="/opt/OE/build/tmp.1/cross/ppce300c3"

export oldincludedir="/opt/OE/build/tmp.1/cross/ppce300c3/include"

export CCLD="ccache gcc"

export SHELLCMDS="bash --rcfile $TERMRCFILE"

export QPEDIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux"

export BUILD_CCLD="gcc"

export base_libdir="/opt/OE/build/tmp.1/cross/ppce300c3/lib"

export PATH="/opt/OE/build/tmp.1/staging/i686-linux/usr/bin/ppce300c3-linux:/opt/OE/build/tmp.1/staging/i686-linux/usr/bin/ppce300c3-linux:/opt/OE/build/tmp.1/staging/i686-linux/usr/sbin:/opt/OE/build/tmp.1/staging/i686-linux/usr/bin:/opt/OE/build/tmp.1/cross/ppce300c3/bin:/opt/OE/build/tmp.1/staging/i686-linux/sbin:/opt/OE/build/tmp.1/staging/i686-linux/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

export TARGET_CFLAGS="-isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2"

export base_bindir="/opt/OE/build/tmp.1/cross/ppce300c3/bin"

export servicedir="/opt/OE/build/tmp.1/cross/ppce300c3/srv"

export BUILD_CPP="cpp"

export SDK_CXXFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2 -fpermissive"

export sbindir="/opt/OE/build/tmp.1/cross/ppce300c3/bin"

export SDK_CFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include -fexpensive-optimizations -frename-registers -fomit-frame-pointer -O2"

export BUILD_AR="ar"

export sharedstatedir="/opt/OE/build/tmp.1/cross/ppce300c3/com"

export F77="ccache g77"

export XDG_DATA_DIRS="/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share"

export BUILD_CFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2"

export QMAKE_MKSPEC_PATH="/opt/OE/build/tmp.1/staging/i686-linux/usr/share/qmake"

export PKG_CONFIG_DIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/pkgconfig"

export infodir="/opt/OE/build/tmp.1/cross/ppce300c3/share/info"

export libdir="/opt/OE/build/tmp.1/cross/ppce300c3/lib"

export OPIEDIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux"

export base_prefix="/opt/OE/build/tmp.1/cross/ppce300c3"

export CC="ccache gcc"

export TARGET_LDFLAGS="-L/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib -Wl,-O1 -Wl,--hash-style=gnu"

export docdir="/opt/OE/build/tmp.1/cross/ppce300c3/share/doc"

export palmqtdir="/opt/OE/build/tmp.1/cross/ppce300c3/lib/opie"

unset DISTRO

export base_sbindir="/opt/OE/build/tmp.1/cross/ppce300c3/bin"

export CXX="ccache g++"

export PKG_CONFIG_DISABLE_UNINSTALLED="yes"

export PKG_CONFIG_SYSROOT_DIR="/opt/OE/build/tmp.1/staging/ppce300c3-linux"

export PKG_CONFIG_PATH="/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/pkgconfig:/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/pkgconfig"

unset MACHINE

export palmtopdir="/opt/OE/build/tmp.1/cross/ppce300c3/lib/opie"

export PATCH_GET="0"

export MANIFEST="/opt/OE/org.cnh_fred.dev/recipes/gcc/gcc-4.2.4/manifest"

export SDK_CPPFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include"

export BUILD_STRIP="strip"

export CFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2"

export BUILD_RANLIB="ranlib"

export sysconfdir="/opt/OE/build/tmp.1/cross/ppce300c3/etc"

export BUILD_CPPFLAGS="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include"

do_fetchall() {
	base_do_fetchall

}

base_do_checkuriall() {
	:

}

populate_staging_preamble() {
	if [ "$PSTAGING_ACTIVE" = "1" ]; then
		stage-manager -p /opt/OE/build/tmp.1/staging -c /opt/OE/build/tmp.1/deploy/pstage/stamp-cache-staging -u || true
		stage-manager -p /opt/OE/build/tmp.1/cross/ppce300c3 -c /opt/OE/build/tmp.1/deploy/pstage/stamp-cache-cross -u || true
	fi

}

base_do_install() {
	:

}

do_stage() {
	oe_runmake install
	for d in info man share/doc share/locale ; do
		rm -rf /opt/OE/build/tmp.1/cross/ppce300c3/$d
	done

	# Fix a few include links so cross builds are happier
	if [ ! -e /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include/c++ ]; then
		mkdir -p /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include
		mkdir -p /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/include/c++
		ln -sf /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/include/c++ \
			/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include/
	fi

	# We use libiberty from binutils
	rm -f /opt/OE/build/tmp.1/cross/ppce300c3/lib/libiberty.a

	# We probably don't need these
	rmdir /opt/OE/build/tmp.1/cross/ppce300c3/include || :

	# We don't really need to keep this around
	# rm -rf /opt/OE/build/tmp.1/cross/ppce300c3/share but leave java there
	for d in share/man share/info;
	do
		rm -rf /opt/OE/build/tmp.1/cross/ppce300c3/$d
	done

	#fix up libsupc++ and libstdc++ la files
	for d in lib lib/nof; do
		sed -i "s|dependency_libs\s*=\s*.*|dependency_libs='-L/opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/$d -lgcc_s -lc -lm '|" /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/$d/libsupc++.la || true
		sed -i "s|dependency_libs\s*=\s*.*|dependency_libs='-L/opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/$d -lgcc_s -lc -lm '|" /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/$d/libstdc++.la || true
	done

}

base_do_package() {
	:

}

autotools_do_install() {
	oe_runmake 'DESTDIR=/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image' install

}

oe_machinstall() {
	# Purpose: Install machine dependent files, if available
	#          If not available, check if there is a default
	#          If no default, just touch the destination
	# Example:
	#                $1  $2   $3         $4
	# oe_machinstall -m 0644 fstab /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/etc/fstab
	#
	# TODO: Check argument number?
	#
	filename=`basename $3`
	dirname=`dirname $3`

	for o in `echo task-configure:local:mpc5121:fred:linux:powerpc:build-linux:fail-fast:pn-gcc-cross | tr ':' ' '`; do
		if [ -e $dirname/$o/$filename ]; then
			oenote $dirname/$o/$filename present, installing to $4
			install $1 $2 $dirname/$o/$filename $4
			return
		fi
	done
#	oenote overrides specific file NOT present, trying default=$3...
	if [ -e $3 ]; then
		oenote $3 present, installing to $4
		install $1 $2 $3 $4
	else
		oenote $3 NOT present, touching empty $4
		touch $4
	fi

}

package_stagefile_shell() {
	if [ "$PSTAGING_ACTIVE" = "1" ]; then
		srcfile=$1
		destfile=`echo $srcfile | sed s#/opt/OE/build/tmp.1#/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg#`
		destdir=`dirname $destfile`
		mkdir -p $destdir
		cp -dp $srcfile $destfile
	fi

}

die() {
	oefatal "$*"

}

base_do_buildall() {
	:

}

do_configure() {
	# Setup these vars for cross building only
	# ... because foo_FOR_TARGET apparently gets misinterpreted inside the
	# gcc build stuff when the build is producing a cross compiler - i.e.
	# when the 'current' target is the 'host' system, and the host is not
	# the target (because the build is actually making a cross compiler!)
	if [ "i686-linux" != "i686-linux" ]; then
		export CC_FOR_TARGET="ccache gcc "
		export GCC_FOR_TARGET="ccache gcc "
		export CXX_FOR_TARGET="ccache g++ "
		export AS_FOR_TARGET="as"
		export LD_FOR_TARGET="ld"
		export NM_FOR_TARGET="nm"
		export AR_FOR_TARGET="ar"
		export GFORTRAN_FOR_TARGET="gfortran"
		export RANLIB_FOR_TARGET="ranlib"
	fi
	export CC_FOR_BUILD="ccache gcc "
	export CXX_FOR_BUILD="ccache g++ "
	export CFLAGS_FOR_BUILD="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2"
	export CPPFLAGS_FOR_BUILD="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include"
	export CXXFLAGS_FOR_BUILD="-isystem/opt/OE/build/tmp.1/staging/i686-linux/usr/include -O2 -fpermissive"
	export LDFLAGS_FOR_BUILD="-L/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath-link,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-rpath,/opt/OE/build/tmp.1/staging/i686-linux/usr/lib -Wl,-O1"
	export ARCH_FLAGS_FOR_TARGET="-mcpu=e300c3 -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include"
	(cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4 && gnu-configize) || die "failure running gnu-configize"

	# splice our idea of where the headers live into gcc's world
	echo "NATIVE_SYSTEM_HEADER_DIR = /usr/include" > /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp/t-oe
	sed 's%^tmake_file=.*$%& /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp/t-oe%' < /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/Makefile.in >/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/Makefile.in.new
	mv /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/Makefile.in.new /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/Makefile.in

	echo "#define STANDARD_INCLUDE_DIR \"/usr/include\"" >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/gcc/defaults.h

	oe_runconf

}

oe_runconf() {
	if [ -x /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure ] ; then
		cfgcmd="/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure \
		    --build=i686-linux \
		    --host=i686-linux \
		    --target=powerpc-linux \
		    --prefix=/opt/OE/build/tmp.1/cross/ppce300c3 \
		    --exec_prefix=/opt/OE/build/tmp.1/cross/ppce300c3 \
		    --bindir=/opt/OE/build/tmp.1/cross/ppce300c3/bin \
		    --sbindir=/opt/OE/build/tmp.1/cross/ppce300c3/bin \
		    --libexecdir=/opt/OE/build/tmp.1/cross/ppce300c3/libexec \
		    --datadir=/opt/OE/build/tmp.1/cross/ppce300c3/share \
		    --sysconfdir=/opt/OE/build/tmp.1/cross/ppce300c3/etc \
		    --sharedstatedir=/opt/OE/build/tmp.1/cross/ppce300c3/com \
		    --localstatedir=/opt/OE/build/tmp.1/cross/ppce300c3/var \
		    --libdir=/opt/OE/build/tmp.1/cross/ppce300c3/lib \
		    --includedir=/opt/OE/build/tmp.1/cross/ppce300c3/include \
		    --oldincludedir=/opt/OE/build/tmp.1/cross/ppce300c3/include \
		    --infodir=/opt/OE/build/tmp.1/cross/ppce300c3/share/info \
		    --mandir=/opt/OE/build/tmp.1/cross/ppce300c3/share/man \
			                 --with-gnu-ld                 --enable-shared                 --enable-target-optspace                 --enable-languages=c,c++,objc                 --enable-threads=posix                 --enable-multilib                 --enable-c99                 --enable-long-long                 --enable-symvers=gnu                 --enable-libstdcxx-pch                 --program-prefix=powerpc-linux-                 --enable-libssp --disable-bootstrap --enable-libgomp --disable-libmudflap                                  --with-local-prefix=/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr 		      --with-gxx-include-dir=/opt/OE/build/tmp.1/staging/ppce300c3-linux//usr/include/c++                       --with-sysroot=/opt/OE/build/tmp.1/staging/ppce300c3-linux                       --with-build-sysroot=/opt/OE/build/tmp.1/staging/ppce300c3-linux --disable-libunwind-exceptions --with-mpfr=/opt/OE/build/tmp.1/staging/i686-linux/usr --enable-__cxa_atexit \
		    $@"
		oenote "Running $cfgcmd..."
		$cfgcmd || oefatal "oe_runconf failed"
	else
		oefatal "no configure script found"
	fi

}

base_do_compile() {
	if [ -e Makefile -o -e makefile ]; then
		oe_runmake || die "make failed"
	else
		oenote "nothing to compile"
	fi

}

oewarn() {
	echo "WARNING:" "$*"

}

autotools_stage_includes() {
	if [ "${INHIBIT_AUTO_STAGE_INCLUDES}" != "1" ]
	then
		rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
		mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
		make DESTDIR="/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging" install
		cp -pPR /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/include/* /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include
		rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
	fi

}

oe_libinstall() {
	# Purpose: Install a library, in all its forms
	# Example
	#
	# oe_libinstall libltdl /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/
	# oe_libinstall -C src/libblah libblah /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image//opt/OE/build/tmp.1/cross/ppce300c3/lib/
	dir=""
	libtool=""
	silent=""
	require_static=""
	require_shared=""
	staging_install=""
	while [ "$#" -gt 0 ]; do
		case "$1" in
		-C)
			shift
			dir="$1"
			;;
		-s)
			silent=1
			;;
		-a)
			require_static=1
			;;
		-so)
			require_shared=1
			;;
		-*)
			oefatal "oe_libinstall: unknown option: $1"
			;;
		*)
			break;
			;;
		esac
		shift
	done

	libname="$1"
	shift
	destpath="$1"
	if [ -z "$destpath" ]; then
		oefatal "oe_libinstall: no destination path specified"
	fi
	if echo "$destpath/" | egrep '^/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/' >/dev/null
	then
		staging_install=1
	fi

	__runcmd () {
		if [ -z "$silent" ]; then
			echo >&2 "oe_libinstall: $*"
		fi
		$*
	}

	if [ -z "$dir" ]; then
		dir=`pwd`
	fi

	dotlai=$libname.lai

	# Sanity check that the libname.lai is unique
	number_of_files=`(cd $dir; find . -name "$dotlai") | wc -l`
	if [ $number_of_files -gt 1 ]; then
		oefatal "oe_libinstall: $dotlai is not unique in $dir"
	fi


	dir=$dir`(cd $dir;find . -name "$dotlai") | sed "s/^\.//;s/\/$dotlai\$//;q"`
	olddir=`pwd`
	__runcmd cd $dir

	lafile=$libname.la

	# If such file doesn't exist, try to cut version suffix
	if [ ! -f "$lafile" ]; then
		libname1=`echo "$libname" | sed 's/-[0-9.]*$//'`
		lafile1=$libname.la
		if [ -f "$lafile1" ]; then
			libname=$libname1
			lafile=$lafile1
		fi
	fi

	if [ -f "$lafile" ]; then
		# libtool archive
		eval `cat $lafile|grep "^library_names="`
		libtool=1
	else
		library_names="$libname.so* $libname.dll.a"
	fi

	__runcmd install -d $destpath/
	dota=$libname.a
	if [ -f "$dota" -o -n "$require_static" ]; then
		__runcmd install -m 0644 $dota $destpath/
	fi
	if [ -f "$dotlai" -a -n "$libtool" ]; then
		if test -n "$staging_install"
		then
			# stop libtool using the final directory name for libraries
			# in staging:
			__runcmd rm -f $destpath/$libname.la
			__runcmd sed -e 's/^installed=yes$/installed=no/' \
				     -e '/^dependency_libs=/s,/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/\1,g' \
				     -e "/^dependency_libs=/s,\([[:space:]']\)/opt/OE/build/tmp.1/cross/ppce300c3/lib,\1/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib,g" \
				     $dotlai >$destpath/$libname.la
		else
			__runcmd install -m 0644 $dotlai $destpath/$libname.la
		fi
	fi

	for name in $library_names; do
		files=`eval echo $name`
		for f in $files; do
			if [ ! -e "$f" ]; then
				if [ -n "$libtool" ]; then
					oefatal "oe_libinstall: $dir/$f not found."
				fi
			elif [ -L "$f" ]; then
				__runcmd cp -P "$f" $destpath/
			elif [ ! -L "$f" ]; then
				libfile="$f"
				__runcmd install -m 0755 $libfile $destpath/
			fi
		done
	done

	if [ -z "$libfile" ]; then
		if  [ -n "$require_shared" ]; then
			oefatal "oe_libinstall: unable to locate shared library"
		fi
	elif [ -z "$libtool" ]; then
		# special case hack for non-libtool .so.#.#.# links
		baselibfile=`basename "$libfile"`
		if (echo $baselibfile | grep -qE '^lib.*\.so\.[0-9.]*$'); then
			sonamelink=`readelf -d $libfile |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
			solink=`echo $baselibfile | sed -e 's/\.so\..*/.so/'`
			if [ -n "$sonamelink" -a x"$baselibfile" != x"$sonamelink" ]; then
				__runcmd ln -sf $baselibfile $destpath/$sonamelink
			fi
			__runcmd ln -sf $baselibfile $destpath/$solink
		fi
	fi

	__runcmd cd "$olddir"

}

base_do_configure() {
	:

}

oe_soinstall() {
	# Purpose: Install shared library file and
	#          create the necessary links
	# Example:
	#
	# oe_
	#
	#oenote installing shared library $1 to $2
	#
	libname=`basename $1`
	install -m 755 $1 $2/$libname
	sonamelink=`readelf -d $1 |grep 'Library soname:' |sed -e 's/.*\[\(.*\)\].*/\1/'`
	solink=`echo $libname | sed -e 's/\.so\..*/.so/'`
	ln -sf $libname $2/$sonamelink
	ln -sf $libname $2/$solink

}

do_install() {
	oe_runmake 'DESTDIR=/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image' install

	# Move libgcc_s into /lib
        mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib
        if [ -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib/libgcc_s.so.? ]; then
                # Already in the right location
                :
        elif [ -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/lib/libgcc_s.so.? ]; then
                mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/lib/libgcc_s.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib || true

        elif [  -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libgcc_s.so.? ]; then
                mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libgcc_s.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib
        else
                mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libgcc_s.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib || true
        fi



	# Move libstdc++ and libg2c into libdir (resetting our prefix to /usr
        mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib

        if [ -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libstdc++.so ]; then

           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libstdc++.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libg2c.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libgfortran*.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/nof/libssp*.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true

        else
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libstdc++.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libg2c.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libgfortran*.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
           mv -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/opt/OE/build/tmp.1/cross/ppce300c3/*/lib/libssp*.so* /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib || true
        fi



       # Manually run the target stripper since we won't get it run by
       # the packaging.
       if [ "x" != "x1" ]; then
               powerpc-linux-strip /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib/libstdc++.so.*
               powerpc-linux-strip /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib/libg2c.so.* || true
               powerpc-linux-strip /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/lib/libgcc_s.so.* || true
               powerpc-linux-strip /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image/usr/lib/libgfortran*.so* || true
	fi

       # Link gfortran to g77 to satisfy not-so-smart configure or hard coded g77
       # gfortran is fully backwards compatible. This is a safe and practical solution.
       if [ -f /opt/OE/build/tmp.1/cross/ppce300c3/bin/powerpc-linux-gfortran ]; then
              currdir="$PWD"
              cd /opt/OE/build/tmp.1/cross/ppce300c3/bin/
              ln -sf powerpc-linux-gfortran powerpc-linux-g77 || true
              cd /opt/OE/build/tmp.1/cross/ppce300c3/powerpc-linux/bin/
              ln -sf gfortran g77 || true
              cd $currdir
       fi
        for i in `find /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image -name "*.la"` ; do \
                sed -i -e '/^dependency_libs=/s,/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),/opt/OE/build/tmp.1/cross/ppce300c3/lib/\1,g' $i
                sed -i -e s:/opt/OE/build/tmp.1/cross/ppce300c3/i686-linux::g $i
                sed -i -e s:/opt/OE/build/tmp.1/cross/ppce300c3::g $i
                sed -i -e s:/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib:/opt/OE/build/tmp.1/cross/ppce300c3/lib:g $i
                sed -i -e s:/opt/OE/build/tmp.1/staging/ppce300c3-linux::g $i
                sed -i -e s:/opt/OE/build/tmp.1/staging::g $i
                sed -i -e s:/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4::g $i
                sed -i -e s:/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp::g $i
                sed -i -e s:/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/image::g $i
        done

}

oenote() {
	echo "NOTE:" "$*"

}

package_update_index_ipk() {
	set -x

	ipkgarchs="all any noarch powerpc  ppce300c3 mpc5121"

	if [ ! -z "${DEPLOY_KEEP_PACKAGES}" ]; then
		return
	fi

	touch /opt/OE/build/tmp.1/deploy/ipk/Packages
	ipkg-make-index -r /opt/OE/build/tmp.1/deploy/ipk/Packages -p /opt/OE/build/tmp.1/deploy/ipk/Packages -l /opt/OE/build/tmp.1/deploy/ipk/Packages.filelist -m /opt/OE/build/tmp.1/deploy/ipk

	for arch in $ipkgarchs; do
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/$arch/ ] ; then
			touch /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages
			ipkg-make-index -r /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages -p /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages -l /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages.filelist -m /opt/OE/build/tmp.1/deploy/ipk/$arch/
		fi
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/ ] ; then
			touch /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages
			ipkg-make-index -r /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages -p /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages -l /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages.filelist -m /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/
		fi
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/ ] ; then
			touch /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages
			ipkg-make-index -r /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages -p /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages -l /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages.filelist -m /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/
		fi
	done

}

do_package_write() {
	:

}

package_generate_ipkg_conf() {
	mkdir -p /opt/OE/build/tmp.1/staging/i686-linux/etc/
	echo "src oe file:/opt/OE/build/tmp.1/deploy/ipk" > /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg.conf
	echo "src oe file:/opt/OE/build/tmp.1/deploy/ipk" > /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-sdk.conf
	echo "src oe file:/opt/OE/build/tmp.1/deploy/ipk" > /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-canadian-sdk.conf
	ipkgarchs="all any noarch powerpc  ppce300c3 mpc5121"
	priority=1
	for arch in $ipkgarchs; do
		echo "arch $arch $priority" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg.conf
		echo "arch i686-$arch-sdk $priority" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-sdk.conf
		echo "arch i686-linux-sdk-$arch $priority" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-canadian-sdk.conf
		priority=$(expr $priority + 5)
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/$arch/Packages ] ; then
		        echo "src oe-$arch file:/opt/OE/build/tmp.1/deploy/ipk/$arch" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg.conf
		fi
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk/Packages ] ; then
		        echo "src oe-i686-$arch-sdk file:/opt/OE/build/tmp.1/deploy/ipk/i686-$arch-sdk" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-sdk.conf
		fi
		if [ -e /opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch/Packages ] ; then
		        echo "src oe-i686-linux-sdk-$arch file:/opt/OE/build/tmp.1/deploy/ipk/i686-linux-sdk-$arch" >> /opt/OE/build/tmp.1/staging/i686-linux/etc/opkg-canadian-sdk.conf
		fi
	done

}

base_do_fetchall() {
	:

}

staging_packager() {

	mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL
	mkdir -p /opt/OE/build/tmp.1/deploy/pstage/fred/2/.1/-opt-OE-build-tmp.1

	echo "Package: staging-gcc-cross-ppce300c3-linux"         >  /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Version: 4.2.4-r5"    >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Description: The GNU cc and gcc C compilers."      >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Section: devel"              >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Priority: Optional"               >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Maintainer: OpenEmbedded Team <openembedded-devel@lists.openembedded.org>"        >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	echo "Architecture: i686-linux"  >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control

	# Protect against empty SRC_URI
	if [ "ftp://ftp.gnu.org/gnu/gcc/gcc-4.2.4/gcc-4.2.4.tar.bz2 	file://100-uclibc-conf.patch;patch=1 	file://103-uclibc-conf-noupstream.patch;patch=1 	file://200-uclibc-locale.patch;patch=1 	file://203-uclibc-locale-no__x.patch;patch=1 	file://204-uclibc-locale-wchar_fix.patch;patch=1 	file://205-uclibc-locale-update.patch;patch=1 	file://300-libstdc++-pic.patch;patch=1 	file://301-missing-execinfo_h.patch;patch=1 	file://302-c99-snprintf.patch;patch=1 	file://303-c99-complex-ugly-hack.patch;patch=1 	file://304-index_macro.patch;patch=1 	file://305-libmudflap-susv3-legacy.patch;patch=1 	file://306-libstdc++-namespace.patch;patch=1 	file://307-locale_facets.patch;patch=1 	file://402-libbackend_dep_gcov-iov.h.patch;patch=1 	file://602-sdk-libstdc++-includes.patch;patch=1 	file://740-sh-pr24836.patch;patch=1 	file://800-arm-bigendian.patch;patch=1 	file://801-arm-bigendian-eabi.patch;patch=1 	file://904-flatten-switch-stmt-00.patch;patch=1 	file://arm-nolibfloat.patch;patch=1 	file://arm-softfloat.patch;patch=1 	file://gcc41-configure.in.patch;patch=1 	file://arm-thumb.patch;patch=1 	file://arm-thumb-cache.patch;patch=1 	file://ldflags.patch;patch=1 	file://zecke-xgcc-cpp.patch;patch=1 	file://unbreak-armv4t.patch;patch=1 	file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 	file://cache-amnesia.patch;patch=1 	file://gfortran.patch;patch=1 	file://gcc-4.0.2-e300c2c3.patch;patch=1 	file://fortran-static-linking.patch;patch=1 	file://intermask-bigendian.patch;patch=1  file://zecke-no-host-includes.patch;patch=1 " != "" ] ; then
		echo "Source: ftp://ftp.gnu.org/gnu/gcc/gcc-4.2.4/gcc-4.2.4.tar.bz2 	file://100-uclibc-conf.patch;patch=1 	file://103-uclibc-conf-noupstream.patch;patch=1 	file://200-uclibc-locale.patch;patch=1 	file://203-uclibc-locale-no__x.patch;patch=1 	file://204-uclibc-locale-wchar_fix.patch;patch=1 	file://205-uclibc-locale-update.patch;patch=1 	file://300-libstdc++-pic.patch;patch=1 	file://301-missing-execinfo_h.patch;patch=1 	file://302-c99-snprintf.patch;patch=1 	file://303-c99-complex-ugly-hack.patch;patch=1 	file://304-index_macro.patch;patch=1 	file://305-libmudflap-susv3-legacy.patch;patch=1 	file://306-libstdc++-namespace.patch;patch=1 	file://307-locale_facets.patch;patch=1 	file://402-libbackend_dep_gcov-iov.h.patch;patch=1 	file://602-sdk-libstdc++-includes.patch;patch=1 	file://740-sh-pr24836.patch;patch=1 	file://800-arm-bigendian.patch;patch=1 	file://801-arm-bigendian-eabi.patch;patch=1 	file://904-flatten-switch-stmt-00.patch;patch=1 	file://arm-nolibfloat.patch;patch=1 	file://arm-softfloat.patch;patch=1 	file://gcc41-configure.in.patch;patch=1 	file://arm-thumb.patch;patch=1 	file://arm-thumb-cache.patch;patch=1 	file://ldflags.patch;patch=1 	file://zecke-xgcc-cpp.patch;patch=1 	file://unbreak-armv4t.patch;patch=1 	file://fix-ICE-in-arm_unwind_emit_set.diff;patch=1 	file://cache-amnesia.patch;patch=1 	file://gfortran.patch;patch=1 	file://gcc-4.0.2-e300c2c3.patch;patch=1 	file://fortran-static-linking.patch;patch=1 	file://intermask-bigendian.patch;patch=1  file://zecke-no-host-includes.patch;patch=1 "               >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	else
		echo "Source: OpenEmbedded"               >> /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/CONTROL/control
	fi

	stage-manager-ipkg-build -o 0 -g 0 /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg /opt/OE/build/tmp.1/deploy/pstage/fred/2/.1/-opt-OE-build-tmp.1

}

autotools_do_configure() {
	case gcc-cross in
	autoconf*)
	;;
	automake*)
	;;
	*)
		# WARNING: gross hack follows:
		# An autotools built package generally needs these scripts, however only
		# automake or libtoolize actually install the current versions of them.
		# This is a problem in builds that do not use libtool or automake, in the case
		# where we -need- the latest version of these scripts.  e.g. running a build
		# for a package whose autotools are old, on an x86_64 machine, which the old
		# config.sub does not support.  Work around this by installing them manually
		# regardless.
		( for ac in `find /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4 -name configure.in -o -name configure.ac`; do
			rm -f `dirname $ac`/configure
			done )
		if [ -e /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure.in -o -e /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure.ac ]; then
			olddir=`pwd`
			cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4
			if [ x"default" = xdefault ]; then
				acpaths=
				for i in `find /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4 -maxdepth 2 -name \*.m4|grep -v 'aclocal.m4'| \
					grep -v 'acinclude.m4' | sed -e 's,\(.*/\).*$,\1,'|sort -u`; do
					acpaths="$acpaths -I $i"
				done
			else
				acpaths="default"
			fi
			AUTOV=`automake --version |head -n 1 |sed "s/.* //;s/\.[0-9]\+$//"`
			automake --version
			echo "AUTOV is $AUTOV"
			install -d /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/aclocal
			install -d /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/aclocal-$AUTOV
			acpaths="$acpaths -I/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/aclocal-$AUTOV -I /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share/aclocal"
			# autoreconf is too shy to overwrite aclocal.m4 if it doesn't look
			# like it was auto-generated.  Work around this by blowing it away
			# by hand, unless the package specifically asked not to run aclocal.
			if ! echo --exclude=autopoint | grep -q "aclocal"; then
				rm -f aclocal.m4
			fi
			if [ -e configure.in ]; then
			  CONFIGURE_AC=configure.in
			else
			  CONFIGURE_AC=configure.ac
			fi
			if grep "^AM_GLIB_GNU_GETTEXT" $CONFIGURE_AC >/dev/null; then
			  if grep "sed.*POTFILES" $CONFIGURE_AC >/dev/null; then
			    : do nothing -- we still have an old unmodified configure.ac
			  else
			    oenote Executing glib-gettextize --force --copy
			    echo "no" | glib-gettextize --force --copy
			  fi
			fi
			if grep "^[AI][CT]_PROG_INTLTOOL" $CONFIGURE_AC >/dev/null; then
			  oenote Executing intltoolize --copy --force --automake
			  intltoolize --copy --force --automake
			fi
			oenote Executing autoreconf --verbose --install --force --exclude=autopoint $acpaths
			mkdir -p m4
			autoreconf -Wcross --verbose --install --force --exclude=autopoint $acpaths || oefatal "autoreconf execution failed."
			cd $olddir
		fi
	;;
	esac
	if [ -e /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/configure ]; then
		oe_runconf $@
	else
		oenote "nothing to configure"
	fi

}

base_do_stage() {
	:

}

autotools_stage_dir() {
	from="$1"
	to="$2"
	# This will remove empty directories so we can ignore them
	rmdir "$from" 2> /dev/null || true
	if [ -d "$from" ]; then
		mkdir -p "$to"
		cp -fpPR "$from"/* "$to"
	fi

}

autotools_stage_all() {
	if [ "${INHIBIT_AUTO_STAGE}" = "1" ]
	then
		return
	fi
	rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
	mkdir -p /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging
	oe_runmake DESTDIR="/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging" install
	autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/include /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include
	if [ "i686-linux" = "i686-linux" ]; then
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/bin /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/bin
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/bin /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/sbin
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/bin /opt/OE/build/tmp.1/staging/ppce300c3-linux/bin
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/bin /opt/OE/build/tmp.1/staging/ppce300c3-linux/sbin
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/libexec /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/libexec
		if [ "/opt/OE/build/tmp.1/cross/ppce300c3/lib" != "/opt/OE/build/tmp.1/cross/ppce300c3/lib" ]; then
			# python puts its files in here, make sure they are staged as well
			autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib
		fi
	fi
	if [ -d /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib ]
	then
		olddir=`pwd`
		cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib
		las=$(find . -name \*.la -type f)
		cd $olddir
		echo "Found la files: $las"
		for i in $las
		do
			sed -e 's/^installed=yes$/installed=no/' \
			    -e '/^dependency_libs=/s,/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*.la\),/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/\1,g' \
			    -e '/^dependency_libs=/s,/opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5[[:alnum:]/\._+-]*/\([[:alnum:]\._+-]*\),/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib,g' \
			    -e "/^dependency_libs=/s,\([[:space:]']\)/opt/OE/build/tmp.1/cross/ppce300c3/lib,\1/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib,g" \
			    -i /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib/$i
		done
		autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib
	fi
	# Ok, this is nasty. pkgconfig.bbclass is usually used to install .pc files,
	# however some packages rely on the presence of .pc files to enable/disable
	# their configurataions in which case we better should not install everything
	# unconditionally, but rather depend on the actual results of make install.
	# The good news though: a) there are not many packages doing this and
	# b) packaged staging will fix that anyways. :M:
	if [ "${AUTOTOOLS_STAGE_PKGCONFIG}" = "1" ]
	then
		if [ -e /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib/pkgconfig/ ] ; then
			echo "cp -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib/pkgconfig/*.pc /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/pkgconfig/"
			cp -f /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/lib/pkgconfig/*.pc /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/lib/pkgconfig/
		fi
	fi
	rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/share/man || true
	rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/share/info || true
	autotools_stage_dir /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging//opt/OE/build/tmp.1/cross/ppce300c3/share /opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/share
	rm -rf /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/temp-staging

}

ldconfig_postinst_fragment() {
if [ x"$D" = "x" ]; then
	if [ -e /etc/ld.so.conf ] ; then
		[ -x /sbin/ldconfig ] && /sbin/ldconfig
	fi
fi

}

do_compile() {
	export CC="ccache gcc "
	export AR_FOR_TARGET="powerpc-linux-ar"
	export RANLIB_FOR_TARGET="powerpc-linux-ranlib"
	export LD_FOR_TARGET="powerpc-linux-ld"
	export NM_FOR_TARGET="powerpc-linux-nm"
	export CC_FOR_TARGET="ccache  powerpc-linux-gcc -mcpu=e300c3"
	base_do_compile

}

staging_helper() {
	# Assemble appropriate opkg.conf
	conffile=/opt/OE/build/tmp.1/deploy/pstage/opkg.conf
	mkdir -p /opt/OE/build/tmp.1/deploy/pstage/pstaging_lists
	if [ ! -e $conffile ]; then
		ipkgarchs="i686-linux"
		priority=1
		for arch in $ipkgarchs; do
			echo "arch $arch $priority" >> $conffile
			priority=$(expr $priority + 5)
		done
		echo "dest root /" >> $conffile
	fi
	if [ ! -e /opt/OE/build/tmp.1/usr/lib/opkg/info/ ]; then
		mkdir -p /opt/OE/build/tmp.1/usr/lib/opkg/info/
	fi
 	if [ ! -e /opt/OE/build/tmp.1/usr/lib/ipkg/ ]; then
		cd /opt/OE/build/tmp.1/usr/lib/
		ln -sf opkg/ ipkg
	fi

}

populate_staging_postamble() {
	if [ "$PSTAGING_ACTIVE" = "1" ]; then
		# list the packages currently installed in staging
		# stage-manager-ipkg -f /opt/OE/build/tmp.1/deploy/pstage/opkg.conf -o /opt/OE/build/tmp.1 list_installed | awk '{print $1}' > /opt/OE/build/tmp.1/deploy/pstage/installed-list

		# exitcode == 5 is ok, it means the files change
		set +e
		stage-manager -p /opt/OE/build/tmp.1/staging -c /opt/OE/build/tmp.1/deploy/pstage/stamp-cache-staging -u -d /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/staging
		exitcode=$?
		if [ "$exitcode" != "5" -a "$exitcode" != "0" ]; then
			exit $exitcode
		fi
		stage-manager -p /opt/OE/build/tmp.1/cross/ppce300c3 -c /opt/OE/build/tmp.1/deploy/pstage/stamp-cache-cross -u -d /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg/cross
		if [ "$exitcode" != "5" -a "$exitcode" != "0" ]; then
			exit $exitcode
		fi
		set -e
	fi

}

oedebug() {
	test $# -ge 2 || {
		echo "Usage: oedebug level \"message\""
		exit 1
	}

	test ${OEDEBUG:-0} -ge $1 && {
		shift
		echo "DEBUG:" $*
	}

}

oe_runmake() {
	if [ x"$MAKE" = x ]; then MAKE=make; fi
	oenote make  ARCH_FLAGS_FOR_TARGET='-mcpu=e300c3 -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include' "$@"
	make  ARCH_FLAGS_FOR_TARGET='-mcpu=e300c3 -isystem/opt/OE/build/tmp.1/staging/ppce300c3-linux/usr/include' "$@" || die "oe_runmake failed"

}

do_package_stage_all() {
	:

}

staging_package_installer() {
	#stage-manager-ipkg -f /opt/OE/build/tmp.1/deploy/pstage/opkg.conf -force-depends -o /opt/OE/build/tmp.1 install /opt/OE/build/tmp.1/deploy/pstage/fred/2/.1/-opt-OE-build-tmp.1/staging-gcc-cross-ppce300c3-linux_4.2.4-r5_i686-linux.ipk

	STATUSFILE=/opt/OE/build/tmp.1/usr/lib/opkg/status
	echo "Package: staging-gcc-cross-ppce300c3-linux"        >> $STATUSFILE
	echo "Version: 4.2.4-r5"   >> $STATUSFILE
	echo "Status: install user installed"  >> $STATUSFILE
	echo "Architecture: i686-linux" >> $STATUSFILE
	echo "" >> $STATUSFILE

	CTRLFILE=/opt/OE/build/tmp.1/usr/lib/opkg/info/staging-gcc-cross-ppce300c3-linux.control
	echo "Package: staging-gcc-cross-ppce300c3-linux"        > $CTRLFILE
	echo "Version: 4.2.4-r5"   >> $CTRLFILE
	echo "Architecture: i686-linux" >> $CTRLFILE

	cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/staging-pkg
	find -type f | grep -v ./CONTROL | sed -e 's/^\.//' > /opt/OE/build/tmp.1/usr/lib/opkg/info/staging-gcc-cross-ppce300c3-linux.list

}

oefatal() {
	echo "FATAL:" "$*"
	exit 1

}

MIRRORS() {
ftp://ftp.gnu.org/gnu/gcc/releases/    ftp://gcc.gnu.org/pub/gcc/releases/
ftp://ftp.gnu.org/gnu/gcc/	http://mirrors.rcn.net/pub/sourceware/gcc/releases/
ftp://ftp.gnu.org/gnu/gcc/releases/    http://gcc.get-software.com/releases/
ftp://ftp.gnu.org/gnu/gcc/	http://gcc.get-software.com/releases/
ftp://ftp.debian.org/debian/pool/main	http://snapshot.debian.net/archive/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.de.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.au.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.cl.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.hr.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.fi.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.hk.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.hu.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.ie.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.it.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.jp.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.no.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.pl.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.ro.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.si.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.es.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.se.debian.org/debian/pool
ftp://ftp.debian.org/debian/pool	ftp://ftp.tr.debian.org/debian/pool
ftp://ftp.gnu.org/gnu	ftp://mirrors.kernel.org/gnu
ftp://ftp.gnu.org/gnu	ftp://ftp.matrix.com.br/pub/gnu
ftp://ftp.gnu.org/gnu	ftp://ftp.cs.ubc.ca/mirror2/gnu
ftp://ftp.gnu.org/gnu	ftp://sunsite.ust.hk/pub/gnu
ftp://ftp.gnu.org/gnu	ftp://ftp.ayamura.org/pub/gnu
http://kernel.org	http://www.kernel.org/pub
http://kernel.org	ftp://ftp.us.kernel.org/pub
http://kernel.org	ftp://ftp.uk.kernel.org/pub
http://kernel.org	ftp://ftp.hk.kernel.org/pub
http://kernel.org	ftp://ftp.au.kernel.org/pub
http://kernel.org	ftp://ftp.jp.kernel.org/pub
ftp://ftp.gnupg.org/gcrypt/     ftp://ftp.franken.de/pub/crypt/mirror/ftp.gnupg.org/gcrypt/
ftp://ftp.gnupg.org/gcrypt/     ftp://ftp.surfnet.nl/pub/security/gnupg/
ftp://ftp.gnupg.org/gcrypt/     http://gulus.USherbrooke.ca/pub/appl/GnuPG/
ftp://dante.ctan.org/tex-archive ftp://ftp.fu-berlin.de/tex/CTAN
ftp://dante.ctan.org/tex-archive http://sunsite.sut.ac.jp/pub/archives/ctan/
ftp://dante.ctan.org/tex-archive http://ctan.unsw.edu.au/
ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.gnutls.org/pub/gnutls/
ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.gnupg.org/gcrypt/gnutls/
ftp://ftp.gnutls.org/pub/gnutls http://www.mirrors.wiretapped.net/security/network-security/gnutls/
ftp://ftp.gnutls.org/pub/gnutls ftp://ftp.mirrors.wiretapped.net/pub/security/network-security/gnutls/
ftp://ftp.gnutls.org/pub/gnutls http://josefsson.org/gnutls/releases/
http://ftp.info-zip.org/pub/infozip/src/ http://mirror.switch.ch/ftp/mirror/infozip/src/
http://ftp.info-zip.org/pub/infozip/src/ ftp://sunsite.icm.edu.pl/pub/unix/archiving/info-zip/src/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cerias.purdue.edu/pub/tools/unix/sysutils/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tau.ac.il/pub/unix/admin/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.cert.dfn.de/pub/tools/admin/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.fu-berlin.de/pub/unix/tools/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.kaizo.org/pub/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tu-darmstadt.de/pub/sysadmin/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://ftp.tux.org/pub/sites/vic.cc.purdue.edu/tools/unix/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://gd.tuwien.ac.at/utils/admin-tools/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://sunsite.ualberta.ca/pub/Mirror/lsof/
ftp://lsof.itap.purdue.edu/pub/tools/unix/lsof/  ftp://the.wiretapped.net/pub/security/host-security/lsof/
http://www.apache.org/dist  http://archive.apache.org/dist


}

cd /opt/OE/build/tmp.1/work/ppce300c3-linux/gcc-cross-4.2.4-r5/gcc-4.2.4/build.i686-linux.powerpc-linux
do_configure

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: nof/libgcc_s.so installed instead of libgcc_s.so on powerpc
  2009-06-18 15:17       ` Matteo Fortini
@ 2009-06-27  0:59         ` Khem Raj
  2009-11-30  1:15           ` Jeremy Williams
  0 siblings, 1 reply; 9+ messages in thread
From: Khem Raj @ 2009-06-27  0:59 UTC (permalink / raw)
  To: Matteo Fortini; +Cc: openembedded-devel@openembedded.org

[-- Attachment #1: Type: Text/Plain, Size: 191 bytes --]

On Thursday 18 June 2009 08:17:24 am Matteo Fortini wrote:
> Here it is

Thanks. It might be problem in install section of our recipes.
Can you post log.do_compile file 

Thx

-Khem

[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 204 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: nof/libgcc_s.so installed instead of libgcc_s.so on powerpc
  2009-06-27  0:59         ` Khem Raj
@ 2009-11-30  1:15           ` Jeremy Williams
  2009-11-30 18:45             ` Khem Raj
  0 siblings, 1 reply; 9+ messages in thread
From: Jeremy Williams @ 2009-11-30  1:15 UTC (permalink / raw)
  To: openembedded-devel

Khem Raj <raj.khem <at> gmail.com> writes:


> 
> Thanks. It might be problem in install section of our recipes.
> Can you post log.do_compile file 
> 
> Thx
> 
> -Khem

This is a bump. I am still seeing this issue. I'm assuming that the OP did not
provide a do_compile log which is why this thread died. I am willing to provide
the necessary information but I have noticed that the problem does not exist in
the image directory when the gcc-sdk package is created. Is this file perhaps
included from some other package that gets installed to the rootfs?

-jeremy






^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: nof/libgcc_s.so installed instead of libgcc_s.so on powerpc
  2009-11-30  1:15           ` Jeremy Williams
@ 2009-11-30 18:45             ` Khem Raj
  2009-12-02 18:04               ` Jeremy Williams
  0 siblings, 1 reply; 9+ messages in thread
From: Khem Raj @ 2009-11-30 18:45 UTC (permalink / raw)
  To: openembedded-devel

On Sun, Nov 29, 2009 at 5:15 PM, Jeremy Williams <jerm7861@yahoo.com> wrote:
> Khem Raj <raj.khem <at> gmail.com> writes:
>
>
>>
>> Thanks. It might be problem in install section of our recipes.
>> Can you post log.do_compile file
>>
>> Thx
>>
>> -Khem
>
> This is a bump. I am still seeing this issue. I'm assuming that the OP did not
> provide a do_compile log which is why this thread died. I am willing to provide
> the necessary information

thanks that will help to diagnose it further

but I have noticed that the problem does not exist in
> the image directory when the gcc-sdk package is created. Is this file perhaps
> included from some other package that gets installed to the rootfs?

could be that its from one of intermediate gcc stages.

>
> -jeremy
>
>
>
>
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>



^ permalink raw reply	[flat|nested] 9+ messages in thread

* Re: nof/libgcc_s.so installed instead of libgcc_s.so on powerpc
  2009-11-30 18:45             ` Khem Raj
@ 2009-12-02 18:04               ` Jeremy Williams
  0 siblings, 0 replies; 9+ messages in thread
From: Jeremy Williams @ 2009-12-02 18:04 UTC (permalink / raw)
  To: openembedded-devel

Khem Raj <raj.khem <at> gmail.com> writes:

> 
> could be that its from one of intermediate gcc stages.
> 
libgcc_s.so.1 is provided by both the host package gcc-cross-sdk and the target 
package libgcc1, both installed to the same place. 

[root@msvm1 powerpc-angstrom-linux]# opkg files gcc-cross-sdk | grep libgcc
/usr/local/angstrom/powerpc/powerpc-angstrom-linux/lib/libgcc_s.so
/usr/local/angstrom/powerpc/powerpc-angstrom-linux/lib/nof/libgcc_s.so.1
/usr/local/angstrom/powerpc/lib/gcc/powerpc-angstrom-linux/4.3.3/libgcc.a
/usr/local/angstrom/powerpc/powerpc-angstrom-linux/lib/libgcc_s.so.1
/usr/local/angstrom/powerpc/powerpc-angstrom-linux/lib/nof/libgcc_s.so
/usr/local/angstrom/powerpc/lib/gcc/powerpc-angstrom-linux/4.3.3/libgcc_eh.a
[root@msvm1 powerpc-angstrom-linux]# opkg-target files libgcc1
Package libgcc1 (4.3.3-r7.1.4) is installed on root and has the following files:
/usr/local/angstrom/powerpc/powerpc-angstrom-linux/lib/libgcc_s.so.1

Since the files in the image directory of gcc-cross-sdk are correct, I suspect 
that it is the fault of libgcc1. I am looking into this further today...after I 
get past the latest meta-toolchain build issue... :)

-jeremy





^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2009-12-02 18:06 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-15 14:34 nof/libgcc_s.so installed instead of libgcc_s.so on powerpc Matteo Fortini
2009-06-15 15:03 ` Leon Woestenberg
2009-06-15 15:21   ` Matteo Fortini
2009-06-18  6:09     ` Khem Raj
2009-06-18 15:17       ` Matteo Fortini
2009-06-27  0:59         ` Khem Raj
2009-11-30  1:15           ` Jeremy Williams
2009-11-30 18:45             ` Khem Raj
2009-12-02 18:04               ` Jeremy Williams

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.