Thanks, Phil, 

I checked my /usr/include/limits.h, which seems exactly the same as yours (see 
attached). The problem is in line 125:26: error: no include path in which to 
search for limits.h. Probably it is about the notorious  '#include_next'.  

I think you are right - the Ubuntu limits.h is trying to load another file of 
the same name and it is this file that cannot be found.  In our case, (Ubuntu) 
linux should have a search path list for header files in which the compiler can 
search for another limits.h  in the next  head file directory.  AFAIK  
/usr/include and /usr/local/include  are two  default  header  file dirs in the 
search list. Besides  these I have to use either command line option (like -I 
/head/file/dir) or include in the .bashrc like the following C header path to 
expand the search list,

C_INCLUDE_PATH=/opt/gdbm-1.8.3/include 
export C_INCLUDE_PATH

Should this thought make sense, since  there are so many  different limits.h 
files in the kernel tree, please can you advise me what header path is included 
in your .bashrc file  (as it seems you did not use -I option in the command 
line) so that I can include that also. Thanks.

Michael


Subject: RE: problem on building a new linux kernel
Date: Wed, 7 May 2008 11:37:08 +0100
From: [EMAIL PROTECTED]
To: [EMAIL PROTECTED]; [email protected]

Hi, Compiling on the target should be possible but very slow. When on the 
target you need to remember that you are no longer cross compiling. This does 
assume that the NFS file system is 'sane' as far as 'gcc' is concerned, it is 
ceratinly big enough at over 1G (for an embedded system). The only reason for 
the [EMAIL PROTECTED] linux-2.6.10_mvl401]#.  prompt was I happened to be 
logged into the host where I was preparing a custom set of kernel modules & 
device files for inclusion into a root filesystem (produced by DevRocket). I 
need to be root to get the permissions right on the target files. You should be 
able to build the kernel & modules as non-root although installing the modules 
requires root permission to chown the files to uid:0 gid:0 before using them. 
Very rarely do you gain much by re installing in the Linux world. If the 
machine boots you should be able to add/remove packages with the package 
management tools that the Linux distribution has. The *buntu series has on!
 e of the better tools for doing this - you need the 'package manager' rather 
than 'add/remove software'. AFAIK it is the same tool with a different 'view' I 
would fire it up and make sure that you have installed all the relavant 'devel' 
packages, particularly 'glibc-headers' (that is the Fedora/Redhat name). That 
should put the host header files under /usr/include. I don't understand why 
your build is failing - it would seem to be finding the files...in that it 
references line numbers within limits.h for example. It is the 'no include 
path' bit I don't get - being that /usr/include is *the* well known path for 
include files. It could be a partial install of gcc?? Have a look in 
/usr/include/limits.h to see what it is complaining about. I have attached the 
Fedora 8 version for comparison - I think you will find the Ubuntu limits.h is 
trying to load another file of the same name and it is this file that cannot be 
found. If you decide to switch to Fedora, I would either wait f!
 or Fedora 9 to be officially released, use Fedora 8 or given you are e
ffectively building a server try CentOS. Regards Phil Q Phil Quiney, Senior 
Software Engineer
Trinity Convergence
Cambridge Business ParkCowley RoadCambridge CB4 0WZ, UK
T: +44(0)1223-435536
F: +44(0)1223-435560www.trinityconvergence.com
 
From: YangZhijun [mailto:[EMAIL PROTECTED] 
Sent: 07 May 2008 10:43
To: Phil Quiney; [email protected]
Subject: RE: problem on building a new linux kernel

Thanks Phil, 

I checked the hidden files in my /workdir/lsp directory, a copy dir of the  MV  
LSP in my home  dir.  There are  .mvl_cross_compile, .mvl_target_cpu and  
.mvl_target_installdir already in the dir which contain  arm_v5t_le-,  arm  and 
 arm/v5t_le  respectively. I then use

make mrproper
It seems this make does some cleaning things all right. But still I got the 
following errors when I compile,

[EMAIL PROTECTED]:~/workdir/lsp/ti-davinci$ make V=1 davinci_dm355_evm_defconfig
make -f scripts/Makefile.build obj=scripts/basic
  gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall -Wstrict-prototypes -O2 
-fomit-frame-pointer         -o scripts/basic/fixdep scripts/basic/fixdep.c
In file included from scripts/basic/fixdep.c:113:
/usr/include/limits.h:125:26: error: no include path in which to search for 
limits.h
In file included from /usr/include/bits/socket.h:31,
                 from /usr/include/sys/socket.h:35,
                 from /usr/include/netinet/in.h:24,
                 from /usr/include/arpa/inet.h:23,
                 from scripts/basic/fixdep.c:115:
/usr/include/limits.h:125:26: error: no include path in which to search for 
limits.h
make[1]: *** [scripts/basic/fixdep] Error 1
make: *** [scripts_basic] Error 2

I saw you compiled with a command line prompt like, [EMAIL PROTECTED] 
linux-2.6.10_mvl401]#.  I'm wondering if I should compile in the console 
emulation window connecting to the EVM board via RS232 with my prompt '[EMAIL 
PROTECTED]' (i.e., target $ in the guide), and use the workdir which has 
subdirs of filesys and lsp as the shared file system. But if my gcc package has 
any bug, then I don't think I can pass compilation even using shared file 
system. 

I am using Ubuntu linux 7.04, I did not perceive any mis-operation in my last 
installation but do you think it help if I re-install ubuntu or another linux 
such as Fedora 9 Beta? Any suggestions would be appreciated.

Cheers,

Michael 


    Subject: RE: problem on building a new linux kernel
Date: Tue, 6 May 2008   14:11:15 +0100
From: [EMAIL PROTECTED]
To:   [EMAIL PROTECTED]; [email protected]

      Hi     Can you do the following at the top of your kernel   source 
tree.....     echo 'arm_v5t_le-' >   .mvl_cross_compile  echo 'arm' > 
.mvl_target_cpu  echo 'arm/v5t_le' >   .mvl_target_installdir  make mrproper  
make V=1   davinci_dm355_evm_defconfig     The 'echo' commands set up the tree 
so you no   longer need to specify ARCH= & CROSS_COMPILE= options. MV added 
this to   the Makefile so might as well use it.      The V=1 increases 
verbosity of the kernel build.   This should give more information as to what 
is going wrong     My guess is there is something wrong with your   host tools 
(that is native gcc for the PC). The host compiler is needed even   when cross 
compiling so that the kernel configuration menus can be   built.     For 
reference my kernel tree does   this.....     [EMAIL PROTECTED] 
linux-2.6.10_mvl401]# make V=1   davinci_dm355_evm_defconfig
make -f scripts/Makefile.build   obj=scripts/basic
  gcc -Wp,-MD,scripts/basic/.fixdep.d -Wall   -Wstrict-prototypes -O2 
-fomit-frame-pointer   -I/opt/mv_pro_4.0.1/montavista/pro/bin//../include       
   -o scripts/basic/fixdep scripts/basic/fixdep.c     for the file you were 
having problems   with.
  Regards     Phil Q        Phil Quiney, Senior Software   Engineer
Trinity Convergence
Cambridge Business Park  Cowley Road  Cambridge CB4 0WZ, UK
T:   +44(0)1223-435536
F: +44(0)1223-435560  www.trinityconvergence.com
   
      From:   [EMAIL PROTECTED]   [mailto:[EMAIL PROTECTED] On Behalf   Of 
YangZhijun
Sent: 04 May 2008 17:45
To:   [email protected]
Subject: problem on   building a new linux kernel

  Dear All,

When following the getting started guide of DM355   DVEVM to build a new linux 
kernel, 
after entering, 

$ make ARCH=arm   CROSS_COMPILE=arm_v5t_le- davinci_dm355_evm_defconfig

I got the   following errors,

  HOSTCC    scripts/basic/fixdepIn file included from   
scripts/basic/fixdep.c:113:/usr/include/limits.h:125:26: error: no include   
path in which to search for limits.hIn file included   from 
/usr/include/bits/socket.h:31,                   from 
/usr/include/sys/socket.h:35,
                   from /usr/include/netinet/in.h:24,                   from 
/usr/include/arpa/inet.h:23,                   from 
scripts/basic/fixdep.c:115:/usr/include/limits.h:125:26: error: no include   
path in which to search for limits.hmake[1]: ***   [scripts/basic/fixdep] Error 
1make: *** [scripts_basic] Error 2
Any suggestions about this pr oblem? Thanks.   

Michael

    “七件武器,七种完美” 立刻体验! 
用 Windows Live Spaces 展示个性自我,与好友分享生活! 了解更多信息! 
_________________________________________________________________
多个邮箱同步管理,live mail客户端万人抢用中
http://get.live.cn/product/mail.html
/* Copyright (C) 1991, 1992, 1996, 1997, 1998, 1999, 2000, 2005
   Free Software Foundation, Inc.
   This file is part of the GNU C Library.

   The GNU C Library is free software; you can redistribute it and/or
   modify it under the terms of the GNU Lesser General Public
   License as published by the Free Software Foundation; either
   version 2.1 of the License, or (at your option) any later version.

   The GNU C Library is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   Lesser General Public License for more details.

   You should have received a copy of the GNU Lesser General Public
   License along with the GNU C Library; if not, write to the Free
   Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
   02111-1307 USA.  */

/*
 *	ISO C99 Standard: 7.10/5.2.4.2.1 Sizes of integer types	<limits.h>
 */

#ifndef _LIBC_LIMITS_H_
#define _LIBC_LIMITS_H_	1

#include <features.h>


/* Maximum length of any multibyte character in any locale.
   We define this value here since the gcc header does not define
   the correct value.  */
#define MB_LEN_MAX	16


/* If we are not using GNU CC we have to define all the symbols ourself.
   Otherwise use gcc's definitions (see below).  */
#if !defined __GNUC__ || __GNUC__ < 2

/* We only protect from multiple inclusion here, because all the other
   #include's protect themselves, and in GCC 2 we may #include_next through
   multiple copies of this file before we get to GCC's.  */
# ifndef _LIMITS_H
#  define _LIMITS_H	1

#include <bits/wordsize.h>

/* We don't have #include_next.
   Define ANSI <limits.h> for standard 32-bit words.  */

/* These assume 8-bit `char's, 16-bit `short int's,
   and 32-bit `int's and `long int's.  */

/* Number of bits in a `char'.	*/
#  define CHAR_BIT	8

/* Minimum and maximum values a `signed char' can hold.  */
#  define SCHAR_MIN	(-128)
#  define SCHAR_MAX	127

/* Maximum value an `unsigned char' can hold.  (Minimum is 0.)  */
#  define UCHAR_MAX	255

/* Minimum and maximum values a `char' can hold.  */
#  ifdef __CHAR_UNSIGNED__
#   define CHAR_MIN	0
#   define CHAR_MAX	UCHAR_MAX
#  else
#   define CHAR_MIN	SCHAR_MIN
#   define CHAR_MAX	SCHAR_MAX
#  endif

/* Minimum and maximum values a `signed short int' can hold.  */
#  define SHRT_MIN	(-32768)
#  define SHRT_MAX	32767

/* Maximum value an `unsigned short int' can hold.  (Minimum is 0.)  */
#  define USHRT_MAX	65535

/* Minimum and maximum values a `signed int' can hold.  */
#  define INT_MIN	(-INT_MAX - 1)
#  define INT_MAX	2147483647

/* Maximum value an `unsigned int' can hold.  (Minimum is 0.)  */
#  define UINT_MAX	4294967295U

/* Minimum and maximum values a `signed long int' can hold.  */
#  if __WORDSIZE == 64
#   define LONG_MAX	9223372036854775807L
#  else
#   define LONG_MAX	2147483647L
#  endif
#  define LONG_MIN	(-LONG_MAX - 1L)

/* Maximum value an `unsigned long int' can hold.  (Minimum is 0.)  */
#  if __WORDSIZE == 64
#   define ULONG_MAX	18446744073709551615UL
#  else
#   define ULONG_MAX	4294967295UL
#  endif

#  ifdef __USE_ISOC99

/* Minimum and maximum values a `signed long long int' can hold.  */
#   define LLONG_MAX	9223372036854775807LL
#   define LLONG_MIN	(-LLONG_MAX - 1LL)

/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0.)  */
#   define ULLONG_MAX	18446744073709551615ULL

#  endif /* ISO C99 */

# endif	/* limits.h  */
#endif	/* GCC 2.  */

#endif	/* !_LIBC_LIMITS_H_ */

 /* Get the compiler's limits.h, which defines almost all the ISO constants.

    We put this #include_next outside the double inclusion check because
    it should be possible to include this file more than once and still get
    the definitions from gcc's header.  */
#if defined __GNUC__ && !defined _GCC_LIMITS_H_
/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
# include_next <limits.h>
#endif

/* The <limits.h> files in some gcc versions don't define LLONG_MIN,
   LLONG_MAX, and ULLONG_MAX.  Instead only the values gcc defined for
   ages are available.  */
#if defined __USE_ISOC99 && defined __GNUC__
# ifndef LLONG_MIN
#  define LLONG_MIN	(-LLONG_MAX-1)
# endif
# ifndef LLONG_MAX
#  define LLONG_MAX	__LONG_LONG_MAX__
# endif
# ifndef ULLONG_MAX
#  define ULLONG_MAX	(LLONG_MAX * 2ULL + 1)
# endif
#endif

#ifdef	__USE_POSIX
/* POSIX adds things to <limits.h>.  */
# include <bits/posix1_lim.h>
#endif

#ifdef	__USE_POSIX2
# include <bits/posix2_lim.h>
#endif

#ifdef	__USE_XOPEN
# include <bits/xopen_lim.h>
#endif
_______________________________________________
Davinci-linux-open-source mailing list
[email protected]
http://linux.davincidsp.com/mailman/listinfo/davinci-linux-open-source

Reply via email to