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