On Sun, 2010-03-14 at 18:50 +0100, maximilian attems wrote: > On Sun, Mar 14, 2010 at 05:47:40PM +0000, Ben Hutchings wrote: > > > > How does it not work? That links to the kernel headers > > under /usr/include. No need to -I/usr/include. > > how would klcc see linux-libc-dev the headers in /usr/include > without aboves include > > please specify "That links" > > > simple example of a libklc-dev wihtout linux-2.6 headers: > In file included from /usr/lib/klibc/include/unistd.h:11, > from mdadm.h:27, > from mdadm.c:28: > /usr/lib/klibc/include/sys/types.h:15:31: error: linux/posix_types.h: No such file or directory > /usr/lib/klibc/include/sys/types.h:16:23: error: asm/types.h: No such file or directory > > once you add aboves -I the redefinitions start rolling: > In file included from /usr/include/glob.h:22, > from config.c:28: > /usr/include/sys/cdefs.h:216:1: error: "__attribute_pure__" redefined > > easy to test out with make CC=klcc With these changes: diff --git a/debian/control b/debian/control index 14902cc..12f98e1 100644 --- a/debian/control +++ b/debian/control @@ -11,7 +11,7 @@ Vcs-Git: git://git.debian.org/git/kernel/klibc.git Package: libklibc-dev Section: libdevel Architecture: any -Depends: libklibc (= ${binary:Version}), ${misc:Depends} +Depends: libklibc (= ${binary:Version}), linux-libc-dev, ${misc:Depends} Description: kernel headers used during the build of klibc This package contains the set of kernel headers that were required to build klibc and the utilities that ship with it. This may or may diff --git a/scripts/Kbuild.install b/scripts/Kbuild.install index de918f0..608759d 100644 --- a/scripts/Kbuild.install +++ b/scripts/Kbuild.install @@ -95,8 +95,11 @@ header: $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)lib $(Q)mkdir -p $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)bin - $(Q)make -C $(KLIBCKERNELSRC) ARCH=$(KLIBCARCH) INSTALL_HDR_PATH=$(INSTALLROOT)$(INSTALLDIR)/$(KCROSS) headers_install + $(Q)for x in /usr/include/linux /usr/include/asm*; do \ + ln -s $${x} $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/ || exit; \ + done $(Q)cp -rf usr/include/. $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include/. + $(Q)chmod -R a+rX $(INSTALLROOT)$(INSTALLDIR)/$(KCROSS)include $(Q)$(install-data) $(srctree)/klcc/klcc.1 $(INSTALLROOT)$(mandir)/man1/$(KCROSS)klcc.1 $(Q)$(install-bin) $(objtree)/klcc/$(KCROSS)klcc $(INSTALLROOT)$(bindir) --- END --- (the extra chmod was needed to allow for umask > 022) I could compile, link and run this program: #include <unistd.h> int main(void) { write(1, "Hello world\n", 12); return 0; } Ben. -- Ben Hutchings I say we take off; nuke the site from orbit. It's the only way to be sure.
Attachment:
signature.asc
Description: This is a digitally signed message part