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]

RE: Error in glibc make


I have completed insatlling the GLIBC with some hacking. 
I also completed building the final GCC.

But while compiling a sample file, sample.c I am getting the following
error:

c:\MinGW\msys\home\manojv\cinstall_arm\bin\..\lib\gcc-lib\arm-linux\3.2.2\..
\..\..\..\arm-linux\bin\ld.exe: cannot find /lib/libc.so.6

When I do:
$ arm-linux-ld --start-group -lc --end-group --verbose

I see:
==================================================
attempt to open c:/MinGW/msys/home/manojv/cinstall_arm/arm-linux/lib/libc.so
succeeded
opened script file
c:/MinGW/msys/home/manojv/cinstall_arm/arm-linux/lib/libc.so
opened script file
c:/MinGW/msys/home/manojv/cinstall_arm/arm-linux/lib/libc.so
attempt to open /lib/libc.so.6 failed
attempt to open /lib/libc.so.6 failed
attempt to open /lib/libc.so.6 failed
c:\MinGW\msys\home\manojv\cinstall_arm\bin\arm-linux-ld.exe: cannot find
/lib/libc.so.6
==================================================

While attempting to open libc.so.6 it fails.

It is a known bug with MinGW-hosted GNU ld, as stated by Kai. I have already
spent 1.5 weeks reaching at this stage. Could you suggest me where to go
from here? Is there any fix / patch available for this bug?
I am suppose to so all these stuffs on Windows platform only.

one more observation:
When I remove '-lc' from the ld option I get the following errors:
######################################################################
sample.o: In function `main':
sample.o(.text+0x20): undefined reference to `printf'
c:/MinGW/msys/home/manojv/cinstall_arm/arm-linux/lib/crt1.o: In function
`_start':
c:/MinGW/msys/home/manojv/cinstall_arm/arm-linux/lib/crt1.o(.text+0x20):
undefined reference to `__libc_start_main'
c:/MinGW/msys/home/manojv/cinstall_arm/arm-linux/lib/crt1.o(.text+0x24):
undefined reference to `abort'
######################################################################


If I build the sample program as:
$ arm-linux-gcc --static sample.c,
The program compiles and executes properly on the target.


BACKGROUND:
I am trying to build cross-compiler for "target=arm-linux",
"host=i686-pc-mingw32" on Win-2k.

The packages I am using are:
1) binutils-2.13.1.tar
2) For Kernel headers I am using linux-2.4.19.tar & patch-2.4.19-rmk4
(Kernel patch for arch=arm)
3) gcc-3.2.2
4) glibc-2.3.1.tar & glibc-linuxthreads-2.3.1.tar

Also see my comments below.

Thanks,
Manoj

> -----Original Message-----
> From: Kai Ruottu [mailto:kai.ruottu@luukku.com]
> Sent: Tuesday, October 21, 2003 3:17 AM
> To: Manoj Verma, Noida
> Subject: RE: Error in glibc make
> 
> 
> "Manoj Verma, Noida" <manojv@noida.hcltech.com> wrote:
> 
> > programs/localedef.c:449:44: warning: unknown escape sequence '\l'
> 
>  Windoze is not the best build platform...
> 
> > 
> c:\MinGW\msys\home\manojv\cinstall_arm\bin\..\lib\gcc-lib\arm-
> linux\3.2.2\..
> > \..\..\..\arm-linux\bin\ld.exe: warning: ld-linux.so.2, needed by
> > C:/MinGW/msys/home/manojv/build_glibc/libc.so.6, not found 
> (try using -rpath
> > or -rpath-link)
> 
>  This is a known bug with MinGW-hosted GNU ld's -- the 
> 'NEEDED' shared libraries
> being 'linked' or 'chained' (please see with 'objdump -p') to 
> other shared libs,
> will not be automagically found. For instance the 
> 'ld-linux.so.2' is listed as
> 'NEEDED' inside the 'libc.so.6'. Although the error says that the
> '-rpath-link <libdir>' would s´resolve this, neither it will 
> help... The only
> choice here is to add the 'ld-linux.so.2' into the link 
> command, or fix the GNU
> ld for the MinGW host... All this if building glibc on 
> Windoze is the only
> possibility available.
> 

1) How do I add ld-linux.so.2 into the link command
2) I am suppose to so all these stuffs on Windows platform only.

> > make[2]: Leaving directory `/home/manojv/glibc-2.3.1/locale'
> > 	Kai Wrote: "The normal method is to copy the already built
> > glibc-2.2.5 from the target, then build GCC against it. No delimited
> > 'bootstrap-GCC', but the fully working GCC immediately"
> 
>  Please define your "target" a little more precisely!  If you 
> target is
> an existing Linux distribution for ARM, you should use the 
> glibc coming
> with it, ie. the one used to produce all the 
> applications/tools stuff in
> the distribution. If you are building your own Linux distribution from
> scratch, then you can use some existing glibc for Linux/ARM in your
> bootstrap stage, ie. to get a toolchain for some Linux/ARM 
> system which
> you can later customize to your precise needs by building the 
> glibc for
> it using some special options like '-msoft-float' (for 
> ARM-CPUs without
> a FPU). The 'arm-linux-gnu' target has a CPU with FPU as the 
> default...
> 
> > My question is "Is there any location where the cross compiler for
> > "target=arm-linux" and "host=i686-pc-mingw32" is available??
> 
>  The produced glibc is for the target, not for the host... So you can
> build it anywhere where building glibc is possible and then copy the
> result to your Windoze host. On the build platform you will need the
> cross-GCC for 'arm-linux-gnu'. One can get a car be built in 
> a suitable
> factory and then use it in a garage and on the road, so one can also
> build the Windoze hosted cross-GCC for 'arm-linux-gnu' on some other
> host which has the cross-GCC for MinGW...
> 
>  As told, if the Linux/ARM is an existing system with Linux 
> on it, like
> RedHat 8.0 on x86, YelloDog on PPC, a ported Linux/ARM-PDA for iPaq or
> something, then rebuilding glibc for it will be vain because it should
> already exist as prebuilt and be 'customized' for just this "target".
> 
> > If they are not available then the correct steps in 
> building one are:
> > 	a) binutils, then (b) bootstrap GCC, then (C)Glibc, 
> then (d) Final
> > GCC. ??
> > > 2) For Kernel headers I am using linux-2.4.19.tar & 
> patch-2.4.19-rmk4
> 
>  What is this 'rmk4' ?  Does it mean that the "target" is 
> some "custom"
> Linux/ARM for some "custom" hardware?
> 

patch-2.4.19-rmk4 is the Linux kernel patch for arch=arm.

>  My advice would be to use some more sane build platform for 
> the MinGW-
> hosted stuff... Ok, the only problem left seems to be the 
> glibc, so 1st
> building a 'arm-linux-gnu' targeted cross-GCC on a Linux/x86 host and
> then using it to build the final glibc(s) for 'arm-linux-gnu' would be
> at least 10 times as easy as trying the same build on 
> Windoze. Linux is
> like a modern factory with nice CNC-machines while the 
> Windoze with MSYS
> is still like a garage with some simple manual tools... After 
> the needed
> stuff has been built on the bakery/brewery, it can be moved 
> to your mouth,
> easily as a piece of cake/can of beer, meanwhile trying to produce the
> cake/beer in your mouth may be hard...
> 
> Cheers, Kai
> 

------
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]