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: Is it a cross-compiler problem?


Hi Xiaogeng,

I saw exactly the same problem with
gcc-3.1/glibc-2.2.1/binutils-2.11.90.0.25/kernel-headers-2.4.18 on
arm-linux.   Unfortunately I brute forced the solution by #defining the
missing values in the sources of busybox.  Note that other packages (I
think util-linux and linux-ftpd) suffer the same symtoms.  Like you, I'd
like to know the correct solution.

Regards, Stuart


"Xiaogeng (Shawn) Jin" wrote:
> 
> I tried to use the cross gcc-2.95.3 that I built to compile
> busybox-0.60.1 and have a very strange problem.
> 
> I just followed the instructions
> (http://billgatliff.com/twiki/bin/view/Crossgcc/BuildToolchainScript)
> step by step to build my cross gcc (powerpc-linux). It looks successful.
> But when using it to compile busybox-0.60.1's 'mount.c', I encountered
> an error message
> (http://www.geocities.com/shawnxjin/crossgcc/rs-bb.txt). It complains
> that 'PATH_MAX' is not definied, which is defined in <linux/limits.h>,
> which is included in <bits/local_lim.h>, which is included in
> <bits/posix1_lim.h>, which is include in <limits.h> that 'mount.c'
> includes. Let me rephrase it. A->B means B includes A.
> <linux/limits.h> -> <bits/local_lim.h> -> <bits/posix1_lim.h> ->
> <limits.h> -> 'mount.c'.
> 
> Well, I tried the ELDK (http://www.denx.de) cross gcc to compile the
> file. It passed. Here is the result
> (http://www.geocities.com/shawnxjin/crossgcc/eldk-bb.txt). The only
> difference between them is that ELDK cross gcc uses one more switch
> "-D_SOFT_FLOAT". But finally it's not this factor that causes the
> trouble. Then I traced into those headers. It seems to me that somehow
> my cross gcc didn't define '_POSIX_SOURCE' or '_GNU_SOURCE', which is
> supposed to be defined by user or compiler. These two macros will turn
> on '__USE_POSIX", which in turn includes <bits/posix1_lim.h> in
> <limits.h>. The more strange thing is that even if I add
> "-D_POSIX_SOURCE" or "_D_GNU_SOURCE", it doesn't work.
> 
> Why? Later I tried to another c file and the compiler complains that
> 'LINE_MAX' is not defined, which is defined in <bits/posix2_lim.h>. So I
> believe that my cross gcc is unable to define such macros as
> '_POSIX_SOURCE' or '_GNU_SOURCE' implicitly, which may be supposed to be
> done. But how come this happens?
> 
> Nobody who successfuly built a cross gcc (powerpc-linux) have ever run
> into such problems? Why am I so 'lucky'? :(((
> 
> Any help is highly appreciated.
> 
> - Shawn.
> 
> ------
> Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
> Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com

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