From mboxrd@z Thu Jan 1 00:00:00 1970 From: 程任全 Date: Thu, 16 Aug 2007 09:45:40 +0800 Subject: [Cluster-devel] [PATCH] for a header-file-cannot-found building error In-Reply-To: <20070815181040.GA4031@redhat.com> References: <1187148421286-git-send-email-crquan@gmail.com> <20070815181040.GA4031@redhat.com> Message-ID: <91b13c310708151845y6e4d9849l1ce4127ed5bd4446@mail.gmail.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit On 8/16/07, David Teigland wrote: > On Wed, Aug 15, 2007 at 11:27:01AM +0800, Denis Cheng wrote: > > the -idirafter used as a backend including path for header files, but > > the original style didn't work, pick a specific gcc command from the > > making process: > > > > gcc -Wall -g -I. -O2 -idirafter /usr/src/linux-2.6.21.7/include/linux > > -I//usr/include \ -I../config -I../../cman/lib -I../include/ -I../lib/ > > -c -o plock.o plock.c plock.c:37:34: linux/lock_dlm_plock.h: No such > > file or directory > > > > just because plock.c needs a header file , this > > could work: > > I believe that the correct solution is to install the necessary kernel > headers into /usr/include/linux/ prior to building cluster. This > usually means doing something like this: > cd /usr/src/linux > make headers_install > cp usr/include/linux/dlm* /usr/include/linux/ > cp usr/include/linux/gfs* /usr/include/linux/ > cp usr/include/linux/lock_dlm_plock.h /usr/include/linux/ > cp usr/include/linux/lm_interface.h /usr/include/linux/ > (that's all I can think of at the moment) the raw kernel headers by make headers_install wourld generate siding effect to other compiling processes, we should use linux headers under /usr/include from Linux-Libc-Headers Project instead: http://linuxfromscratch.org/pipermail/faq/2004-July/000159.html However: the current style doesn't work: -idirafter /usr/src/linux-2.6.21.7/include/linux and it does work if changed to this: -idirafter /usr/src/linux-2.6.21.7/include So, if you use the raw kernel headers from the running kernel, you don't need -idirafter parameter; or if you need it, the current is wrong. > > Dave > > -- Denis Cheng Linux Application Developer "One of my most productive days was throwing away 1000 lines of code." - Ken Thompson.