[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

kernel compile - make quits on errno.h



Good Day,

I tried my first kernel compile today. Guided by Michael A Peters
http://216.22.163.20/Linux_Pages/kernel_build.shtml
The kernel won't start building. Foregoing building commands did not
produce alarming comments on the console. However, gcc stops at 'make
vmlinux'.

I used /usr/src/kernel-source-2.2.19 put there by Potato. The kernel
started doing weird after a few days of service: Tux was partly covered
by bush-like stuff, feet grayed out (not orange) and the screen was
shifted to the left.

I saved the errors. Honestly, this is the first time in my life and I
don't know what to make of the output. I kept some notes during the
whole exercise. To an experienced compiler the info below may be
revealing. I pointed back to the lines in question with <----xx.

Thanks for your reply.


--
A. Maurits de Wolff
Amsterdam


================================================
console output
=================================================

gcc -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer -o
scripts/split-include scripts/split-include.c
In file included from /usr/include/errno.h:36,
                       from scripts/split-include.c:26:
/usr/include/bits/errno.h:25: linux/errno.h: No such file or directory
make: *** [scripts/split-include] Error 1

================================================
<snip /usr/include/bits/errno.h>
=============================================

#ifdef _ERRNO_H

# undef EDOM
# undef EILSEQ
# undef ERANGE
# include <linux/errno.h>		<------------- line25

/* Linux has no ENOTSUP error code.  */
# define ENOTSUP EOPNOTSUPP

/* Linux also has no ECANCELED error code.  Since it is not used here
         we define it to an invalid value.  */
# define ECANCELED	125

# ifndef __ASSEMBLER__
/* We now need a declaration of the `errno' variable.  */
extern int errno;

/* Function to get address of global `errno' variable.  */
extern int *__errno_location __P ((void)) __attribute__ ((__const__));

#  if defined _LIBC
/* We wouldn't need a special macro anymore but it is history.  */
#   define __set_errno(val) (*__errno_location ()) = (val)
#  endif /* _LIBC */

#  if !defined _LIBC || defined _LIBC_REENTRANT
/* When using threads, errno is a per-thread value.  */
#   define errno (*__errno_location ())
#  endif
# endif /* !__ASSEMBLER__ */
#endif /* _ERRNO_H */

#if !defined _ERRNO_H && defined __need_Emath
/* This is ugly but the kernel header is not clean enough.  We must
         define only the values EDOM and ERANGE in case __need_Emath is
         defined.  The value is the same for all Linux ports.  */
# define EDOM	33	/* Math argument out of domain of function.  */
# define EILSEQ	84	/* Illegal byte sequence.  */
# define ERANGE	34	/* Math result not representable.  */
#endif /* !_ERRNO_H && __need_Emath */

===================================================
<snip /usr/include/errno.h>
=================================================

/*
       *	ISO C Standard: 4.1.3 Errors	<errno.h>
       */

#ifndef
_ERRNO_H

/* The includer defined __need_Emath if he wants only the definitions
         of EDOM and ERANGE, and not everything else.  */
#ifndef
__need_Emath
#define
_ERRNO_H
1
#include <features.h>
#endif

__BEGIN_DECLS

/* Get the error number constants from the system-specific file.
         This file will test __need_Emath and _ERRNO_H.  */
#include <bits/errno.h>			<-----------------line36
#undef
__need_Emath

#ifdef
_ERRNO_H

/* Declare the `errno' variable, unless it's defined as a macro by
         bits/errno.h.  This is the case in GNU, where it is a per-thread
         variable.  This redeclaration using the macro still works, but it
         will be a function declaration without a prototype and may trigger
         a -Wstrict-prototypes warning.  */
#ifndef
errno
extern int errno;
#endif

#ifdef __USE_GNU

/* The full and simple forms of the name with which the program was
         invoked.  These variables are set up automatically at startup
based on
         the value of ARGV[0] (this works only if you use GNU ld).  */
extern char *program_invocation_name, *program_invocation_short_name;
#endif /* __USE_GNU */
#endif /* _ERRNO_H */

__END_DECLS

#endif /* _ERRNO_H */

/* The Hurd <bits/errno.h> defines `error_t' as an enumerated type so
that printing `error_t' values in the debugger shows the names. We might need this definition sometimes even if this file was included
         before.  */
#if defined __USE_GNU || defined __need_error_t
# ifndef __error_t_defined
typedef int error_t;
#  define __error_t_defined	1
# endif
# undef __need_error_t
#endif











Reply to: