This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.

See the CrossGCC FAQ for lots more information.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Cross compler for ppc succeeds on Linux, fails on Cygwin


Using crosstool-0.28-rc7 package, making the cross-compiler was easy on
Linux for powerpc 7400. Much thanks to Dan and others for this excellent
package. 

Using the same setup and latest cygwin as of yesterday, it fails early
in binutil/libiberty when ./configure tests for _doprnt :

...
checking for working fork... yes
checking for working vfork... (cached) yes
checking for _doprnt...       6 [main] sh 940 cmalloc: cmalloc returned
NULL
Signal 11
make: *** [configure-libiberty] Error 1

Is there an environment variable you could set to say _doprnt answer is
"no" and skip testing?

(I tried three times and the 940 (pid) number varies, but rest is same.
At first I thought I ran out of disk space but cleared 20GB more and
still got same result).

Here are two files I created for ppc-7400 (and other dat file I used):

[crosstool-0.28-rc7] #  cat demo-ppc7400.sh
#!/bin/sh
set -ex
TARBALLS_DIR=$HOME/cross_downloads
RESULT_TOP=/opt/crosstool
export TARBALLS_DIR RESULT_TOP
GCC_LANGUAGES="c,c++,f77"
export GCC_LANGUAGES

mkdir -p /opt/crosstool
eval `cat powerpc-7400.dat gcc-3.4.0-glibc-2.2.5.dat` sh all.sh --notest
echo Done.

[crosstool-0.28-rc7] #  cat powerpc-7400.dat
TARGET=powerpc-7400-linux-gnu
TARGET_CFLAGS="-O"
GCC_EXTRA_CONFIG="--with-cpu=7400 --enable-altivec \
--enable-threads=posix --with-stabs --without-dwarf1 --without-dwarf2"

[crosstool-0.28-rc7] $  cat gcc-3.4.0-glibc-2.2.5.dat
BINUTILS_DIR=binutils-2.15.90.0.3
BINUTILS_URL=http://www.kernel.org/pub/linux/devel/binutils
GCC_DIR=gcc-3.4.0
GLIBC_DIR=glibc-2.2.5
LINUX_DIR=linux-2.4.21
GLIBCTHREADS_FILENAME=glibc-linuxthreads-2.2.5


There seems to be a step overlooked by the crosstools.sh script. 
Although it does not seem serious.  The binutils package from
BINUTILS_URL several lines up is intended to be run by doing:
     rpmbuild -ta binutils-xx.xx.xx.xx.xx.tar.bz2
and this will apply five patches in its patch dir. via:
     /bin/sh patches/README
but crosstool.sh misses this step.  But is usually works anyway or
maybe the crosstool patches already include these?

Getting back to the _doprnt problem 

In case you can read a stackdump, here is first half of it:

cat sh.exe.stackdump
Exception: STATUS_ACCESS_VIOLATION at eip=610CCAF4
eax=00000000 ebx=00000088 ecx=00000022 edx=00000000 esi=616E7E7C
edi=00000000
ebp=0022E5C8 esp=0022E5BC program=C:\cygwin\bin\sh.exe, pid 940, thread
main
cs=001B ds=0023 es=0023 fs=0038 gs=0000 ss=0023
Stack trace:
Frame     Function  Args
0022E5C8  610CCAF4  (00000000, 616E7E7C, 00000088, 616E1394)
0022E5F8  61063A21  (7C4EC1B8, FFFFFFFF, 0022E638, 00000000)
0022E618  610EB160  (616E1394, 616E7A74, 77F891D2, 000003D8)
0022E648  6101E58B  (616E018C, 616E7A74, 00000001, 61093882)
0022E688  6101E754  (616E018C, 00000005, 00000001, 0100000C)
0022E6A8  61093BB6  (00000005, 00000001, 00000001, 00000001)
0022E708  6102821B  (00000005, 00000000, 00000001, 61093940)
0022E728  6102826F  (00000005, 00000000, 00000001, 00000001)
0022E748  610882AF  (00000005, 00000001, 616E2FD8, 0000000C)
0022E768  0040D6FB  (0A05CDD0, 0022E790, 0000000A, 00405FAF)
0022E7B8  0040D428  (0A05CDD0, 00000001, 00000000, 616E6D09)

The config.log appears identical for linux and cygwin except the last
line here where "result : no" is missing in cygwin case. 
...
| int
| main ()
| {
| return f != _doprnt;
|   ;
|   return 0;
| }
configure:5980: result: no

Google searches did not turn up this problem that I could recognize.

Can anyone suggest a solution or work around for this error?  I could go
in and take check for _doprnt out but crosstool.sh I think deletes tree
each time it is run and would remove any changes I made.

Thanks,
Don



------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]