I fixed it!!! I think.
I just added "# include <errno.h>" to decoder.c and it compiled fine using "CC=<path>/arm-linux-gcc RANSLIB=<path>/arm-linux-ranlib ./configure <options>" and then "make".
I think the errno.h that it was looking for was the one in /usr/src/linux-2.4.3/include/asm-i386/errno.h This one had all the defines for 'EINTR' etc.
Now to compile minimad.c!
On Tue, 5 Mar 2002 10:19:13 +0000 Gareth Bransby G.C.Bransby-99@student.lboro.ac.uk wrote:
I had a go at what you suggested but this had no effect, it came up with exactly the same error. From what i can see from the error, it is looking in the linux/ directory in the libmad/ source directory, not in /usr/src/linux. I tried doing what you suggested but making the link in the libmad directory rather than in /usr/src, so now i have a link
mad-0.13.0b/libmad/linux -> /usr/local/arm/gnu/release/arm-linux/include.
Now it finds errno.h ok but generates different errors
decoder.c: In function 'mad_decoder_finish': decoder.c:91 'EINTR' undeclared (first use in this function) decoder.c:91 (Each undeclared identifier is reported only once for each function it apears in.) decoder.c In function'send_io': decoder.c:120 'EINTR' undeclared (first use in this function) decoder.c In function'recieve_io': decoder.c:142 'EINTR' undeclared (first use in this function)
decoder.c:145 'EAGAIN' undeclared (first use in this function) make: *** [decoder.lo] error 1
I am wondering are there some required files that are needed for cross compiling that i have not installed?
Thanks
On Tue, 5 Mar 2002 13:45:55 +0800 "davidlee" davidlee@gv.com.tw wrote:
Dear Gareth: Maybe do could do this 1. logon as root 2. cd /usr/src 3. rm linux 4. ln -s arm-linux(or any path that you installed Arm Linux enviroment) ./linux
Try again , Good lucky.
----- Original Message ----- From: "Gareth" g.c.bransby-99@student.lboro.ac.uk To: "Gad Hayisraeli" gad@syete.co.il Cc: "Mad Dev List" mad-dev@lists.mars.org Sent: Thursday, February 28, 2002 7:56 PM Subject: RE: [mad-dev] Cross compiling libmad for ARM
Thanks for the help!
I had a go at doing the CC=... and RANLIB=... on the same line as the ./configure as suggested. This seems to have the dedsired effect, the configure script reports that gcc is a cross compiler and when i look at the Makefile all the paths are pointing to the right place. i.e. the cross compiler i installed.
Now when i come to make, it runs for a bit but then reports the error :
/usr/local/arm/gnu/release/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/errno.h:25: linux/errno.h: No such file or directory
Why is the file bits/errno.h looking for another file of the same name? Is this meant to be an ARM specific errno.h? I did a search for this file and came up with loads :
/usr/include/asm/errno.h /usr/include/linux/errno.h /usr/include/bits/errno.h /usr/include/errno.h /usr/include/sys/errno.h /usr/local/arm/gnu/release/arm-linux/include/bits/errno.h /usr/local/arm/gnu/release/arm-linux/include/errno.h /usr/local/arm/gnu/release/arm-linux/include/sys/errno.h /usr/src/linux-2.4.3/include/asm-i386/errno.h /usr/src/linux-2.4.3/include/linux/errno.h
Which one is it looking for and how do i tell it to use that specific one?
On 27 Feb 2002 21:24:37 +0200, Gad Hayisraeli wrote:
Try this Shell> rm -f config.cache Shell> CC=<path>/arm-linux-gcc ./configure <options> (CC + configure - all in one line)
Gad
-----Original Message----- From: mad-dev-admin@lists.mars.org
[mailto:mad-dev-admin@lists.mars.org] On Behalf Of Gareth
Sent: Wednesday, February 27, 2002 9:02 PM To: mad-dev@lists.mars.org Subject: [mad-dev] Cross compiling libmad for ARM
Hi, I am wanting to compile libmad for ARM. I have installed :
arm-linux-binutils-2.11-1 arm-linux-gcc-2.95-1 arm-linux-glibc-2.1.3-1
To cross compile i do :
export CC=/usr/local/arm/gnu/release/bin/arm-linux-gcc export RANLIB=/usr/local/arm/gnu/release/bin/arm-linux-ranlib export LD=/usr/local/arm/gnu/release/bin/arm-linux-ld export NM=/usr/local/arm/gnu/release/bin/arm-linux-nm
./configure --host=arm-linux --enable-speed --enable-fpm=arm
The configure script completes fine but in the messages it prints i
see
the lines :
checking weather the C compiler (gcc ) is a cross-compiler ... no . . cheching for ld used by GCC... (cached) /usr/bin/ld
so it is not using the cross compiler that i installed. I read in another mail that i may have to configure manually. Is this the case
or
is there somthing i am missing out?
Thanks in advance.