LKML Archive on lore.kernel.org
help / color / mirror / Atom feed
* [PATCH] Allow kernel to build on Cygwin
@ 2007-02-23  3:43 Deepak Saxena
  2007-02-23 20:37 ` Matthieu CASTET
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Deepak Saxena @ 2007-02-23  3:43 UTC (permalink / raw)
  To: Linus Torvalds; +Cc: linux-kernel


This patch contains a set of small fixes to allow the kernel to build under
the Cygwin environment, which is unfortunately used by more people than
one would think in the embedded world. :(

Signed-off-by: Deepak Saxena <dsaxena@mvista.com>

---
 lib/gen_crc32table.c                       |    2 ++
 scripts/kconfig/Makefile                   |    6 ++++++
 scripts/kconfig/lxdialog/check-lxdialog.sh |    4 ++++
 scripts/mod/file2alias.c                   |    4 ++++
 scripts/mod/mk_elfconfig.c                 |    4 ++++
 scripts/mod/modpost.h                      |    4 ++++
 scripts/mod/sumversion.c                   |    6 +++++-
 7 files changed, 29 insertions(+), 1 deletion(-)


diff --git a/lib/gen_crc32table.c b/lib/gen_crc32table.c
index bea5d97..ce447ff 100644
--- a/lib/gen_crc32table.c
+++ b/lib/gen_crc32table.c
@@ -1,6 +1,8 @@
 #include <stdio.h>
 #include "crc32defs.h"
+#ifndef __CYGWIN__
 #include <inttypes.h>
+#endif
 
 #define ENTRIES_PER_LINE 4
 
diff --git a/scripts/kconfig/Makefile b/scripts/kconfig/Makefile
index 7e7e147..ca57efe 100644
--- a/scripts/kconfig/Makefile
+++ b/scripts/kconfig/Makefile
@@ -161,6 +161,12 @@ HOSTLOADLIBES_gconf	= `pkg-config --libs
 HOSTCFLAGS_gconf.o	= `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
                           -D LKC_DIRECT_LINK
 
+HOST_OS := $(shell uname -o)
+ifeq ($(HOST_OS),Cygwin)
+HOSTLOADLIBES_mconf	= -lintl
+HOSTLOADLIBES_conf	= -lintl
+endif
+
 $(obj)/qconf.o: $(obj)/.tmp_qtcheck
 
 ifeq ($(qconf-target),1)
diff --git a/scripts/kconfig/lxdialog/check-lxdialog.sh b/scripts/kconfig/lxdialog/check-lxdialog.sh
index 120d624..c44b559 100644
--- a/scripts/kconfig/lxdialog/check-lxdialog.sh
+++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
@@ -4,6 +4,10 @@ # Check ncurses compatibility
 # What library to link
 ldflags()
 {
+	if [ "`uname -o`" == "Cygwin" ]; then
+		echo '-lintl -lncurses'
+		exit
+	fi
 	$cc -print-file-name=libncursesw.so | grep -q /
 	if [ $? -eq 0 ]; then
 		echo '-lncursesw'
diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
index f61c9cc..479293f 100644
--- a/scripts/mod/file2alias.c
+++ b/scripts/mod/file2alias.c
@@ -29,7 +29,11 @@ #endif
 
 #include <ctype.h>
 
+#if defined(__CYGWIN__)
+typedef __uint32_t	__u32;
+#else
 typedef uint32_t	__u32;
+#endif
 typedef uint16_t	__u16;
 typedef unsigned char	__u8;
 
diff --git a/scripts/mod/mk_elfconfig.c b/scripts/mod/mk_elfconfig.c
index 725d61c..4908f7a 100644
--- a/scripts/mod/mk_elfconfig.c
+++ b/scripts/mod/mk_elfconfig.c
@@ -1,7 +1,11 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#ifdef __CYGWIN__
+#include <libelf.h>
+#else
 #include <elf.h>
+#endif
 
 int
 main(int argc, char **argv)
diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
index d398c61..7cdf2c6 100644
--- a/scripts/mod/modpost.h
+++ b/scripts/mod/modpost.h
@@ -7,7 +7,11 @@ #include <sys/stat.h>
 #include <sys/mman.h>
 #include <fcntl.h>
 #include <unistd.h>
+#ifdef __CYGWIN__
+#include <libelf.h>
+#else
 #include <elf.h>
+#endif
 
 #include "elfconfig.h"
 
diff --git a/scripts/mod/sumversion.c b/scripts/mod/sumversion.c
index 8a28756..4404f87 100644
--- a/scripts/mod/sumversion.c
+++ b/scripts/mod/sumversion.c
@@ -1,7 +1,11 @@
+#if defined(__sun__)
 #include <netinet/in.h>
-#ifdef __sun__
 #include <inttypes.h>
+#elif defined(__CYGWIN__)
+#include <asm/byteorder.h>	/* For ntohl/htonl */
+#include <limits.h>
 #else
+#include <netinet/in.h>
 #include <stdint.h>
 #endif
 #include <ctype.h>

-- 
Deepak Saxena - dsaxena@plexity.net - http://www.plexity.net

In the end, they will not say, "those were dark times,"  they will ask
"why were their poets silent?" - Bertolt Brecht

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Allow kernel to build on Cygwin
  2007-02-23  3:43 [PATCH] Allow kernel to build on Cygwin Deepak Saxena
@ 2007-02-23 20:37 ` Matthieu CASTET
  2007-02-23 23:17   ` Deepak Saxena
  2007-02-24  0:17 ` H. Peter Anvin
  2007-02-24  0:18 ` H. Peter Anvin
  2 siblings, 1 reply; 7+ messages in thread
From: Matthieu CASTET @ 2007-02-23 20:37 UTC (permalink / raw)
  To: linux-kernel

Hi,

Deepak Saxena <dsaxena <at> plexity.net> writes:

> 
> 
> This patch contains a set of small fixes to allow the kernel to build under
> the Cygwin environment, which is unfortunately used by more people than
> one would think in the embedded world. :(
Yes, I did similar patch, and there are needed for everything (busybox, 
glibc, ...)
                        -D LKC_DIRECT_LINK
> 
> +HOST_OS := $(shell uname -o)
> +ifeq ($(HOST_OS),Cygwin)
> +HOSTLOADLIBES_mconf	= -lintl
> +HOSTLOADLIBES_conf	= -lintl
> +endif
> +
Hum, this test should be done if we detect nls support. See ifeq
($(KBUILD_HAVE_NLS),no) ...



> --- a/scripts/kconfig/lxdialog/check-lxdialog.sh
> +++ b/scripts/kconfig/lxdialog/check-lxdialog.sh
>  <at>  <at>  -4,6 +4,10  <at>  <at>  # Check ncurses compatibility
>  # What library to link
>  ldflags()
>  {
> +	if [ "`uname -o`" == "Cygwin" ]; then
> +		echo '-lintl -lncurses'
> +		exit
> +	fi
You should test against libncurses.a and not hardcode it for cygwin...

Matthieu




^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Allow kernel to build on Cygwin
  2007-02-23 20:37 ` Matthieu CASTET
@ 2007-02-23 23:17   ` Deepak Saxena
  0 siblings, 0 replies; 7+ messages in thread
From: Deepak Saxena @ 2007-02-23 23:17 UTC (permalink / raw)
  To: Matthieu CASTET; +Cc: linux-kernel

On Feb 23 2007, at 20:37, Matthieu CASTET was caught saying:
> Hi,
> 
> Deepak Saxena <dsaxena <at> plexity.net> writes:
> 
> > 
> > 
> > This patch contains a set of small fixes to allow the kernel to build under
> > the Cygwin environment, which is unfortunately used by more people than
> > one would think in the embedded world. :(
> Yes, I did similar patch, and there are needed for everything (busybox, 
> glibc, ...)
>                         -D LKC_DIRECT_LINK
> > 
> > +HOST_OS := $(shell uname -o)
> > +ifeq ($(HOST_OS),Cygwin)
> > +HOSTLOADLIBES_mconf	= -lintl
> > +HOSTLOADLIBES_conf	= -lintl
> > +endif
> > +
> Hum, this test should be done if we detect nls support. See ifeq
> ($(KBUILD_HAVE_NLS),no) ...

OK, will do. I'm running into the same issue trying to fix building
under uclibc and would defintely be nicer to have a single solution.

~Deepak

-- 
Deepak Saxena - dsaxena@plexity.net - http://www.plexity.net

In the end, they will not say, "those were dark times,"  they will ask
"why were their poets silent?" - Bertolt Brecht

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Allow kernel to build on Cygwin
  2007-02-23  3:43 [PATCH] Allow kernel to build on Cygwin Deepak Saxena
  2007-02-23 20:37 ` Matthieu CASTET
@ 2007-02-24  0:17 ` H. Peter Anvin
  2007-02-24 22:55   ` Jan Engelhardt
  2007-02-24  0:18 ` H. Peter Anvin
  2 siblings, 1 reply; 7+ messages in thread
From: H. Peter Anvin @ 2007-02-24  0:17 UTC (permalink / raw)
  To: dsaxena; +Cc: Linus Torvalds, linux-kernel

Deepak Saxena wrote:
> 
> diff --git a/lib/gen_crc32table.c b/lib/gen_crc32table.c
> index bea5d97..ce447ff 100644
> --- a/lib/gen_crc32table.c
> +++ b/lib/gen_crc32table.c
> @@ -1,6 +1,8 @@
>  #include <stdio.h>
>  #include "crc32defs.h"
> +#ifndef __CYGWIN__
>  #include <inttypes.h>
> +#endif
>  
>  #define ENTRIES_PER_LINE 4
>  

Cygwin has <inttypes.h> just fine; what are you trying to do here?

	-hpa

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Allow kernel to build on Cygwin
  2007-02-23  3:43 [PATCH] Allow kernel to build on Cygwin Deepak Saxena
  2007-02-23 20:37 ` Matthieu CASTET
  2007-02-24  0:17 ` H. Peter Anvin
@ 2007-02-24  0:18 ` H. Peter Anvin
  2 siblings, 0 replies; 7+ messages in thread
From: H. Peter Anvin @ 2007-02-24  0:18 UTC (permalink / raw)
  To: dsaxena; +Cc: Linus Torvalds, linux-kernel

Deepak Saxena wrote:
> This patch contains a set of small fixes to allow the kernel to build under
> the Cygwin environment, which is unfortunately used by more people than
> one would think in the embedded world. :(
> 
> Signed-off-by: Deepak Saxena <dsaxena@mvista.com>

I have one major problem with this patch: none of the hacks are 
commented, which invites cargo cult programming by people who needs to 
further maintain the code.

	-hpa

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Allow kernel to build on Cygwin
  2007-02-24  0:17 ` H. Peter Anvin
@ 2007-02-24 22:55   ` Jan Engelhardt
  2007-02-24 23:40     ` H. Peter Anvin
  0 siblings, 1 reply; 7+ messages in thread
From: Jan Engelhardt @ 2007-02-24 22:55 UTC (permalink / raw)
  To: H. Peter Anvin; +Cc: dsaxena, Linus Torvalds, linux-kernel


On Feb 23 2007 16:17, H. Peter Anvin wrote:
> Deepak Saxena wrote:
>> 
>> diff --git a/lib/gen_crc32table.c b/lib/gen_crc32table.c
>> index bea5d97..ce447ff 100644
>> --- a/lib/gen_crc32table.c
>> +++ b/lib/gen_crc32table.c
>> @@ -1,6 +1,8 @@
>> # include <stdio.h>
>> # include "crc32defs.h"
>> +#ifndef __CYGWIN__
>> #include <inttypes.h>
>> +#endif
>> 
>> #define ENTRIES_PER_LINE 4
>
> Cygwin has <inttypes.h> just fine; what are you trying to do here?

What's the benefit of inttypes.h over stdint.h?


Jan
-- 
ft: http://freshmeat.net/p/chaostables/

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH] Allow kernel to build on Cygwin
  2007-02-24 22:55   ` Jan Engelhardt
@ 2007-02-24 23:40     ` H. Peter Anvin
  0 siblings, 0 replies; 7+ messages in thread
From: H. Peter Anvin @ 2007-02-24 23:40 UTC (permalink / raw)
  To: Jan Engelhardt; +Cc: dsaxena, Linus Torvalds, linux-kernel

Jan Engelhardt wrote:
> On Feb 23 2007 16:17, H. Peter Anvin wrote:
>> Deepak Saxena wrote:
>>> diff --git a/lib/gen_crc32table.c b/lib/gen_crc32table.c
>>> index bea5d97..ce447ff 100644
>>> --- a/lib/gen_crc32table.c
>>> +++ b/lib/gen_crc32table.c
>>> @@ -1,6 +1,8 @@
>>> # include <stdio.h>
>>> # include "crc32defs.h"
>>> +#ifndef __CYGWIN__
>>> #include <inttypes.h>
>>> +#endif
>>>
>>> #define ENTRIES_PER_LINE 4
>> Cygwin has <inttypes.h> just fine; what are you trying to do here?
> 
> What's the benefit of inttypes.h over stdint.h?
> 

<inttypes.h> is a superset of <stdint.h>; some older platforms don't 
have <stdint.h> (but has all the contents thereof in <inttypes.h>) however.

In general <inttypes.h> is what you want.  The utility of <stdint.h> is 
relatively limited; it looks like it's intended so that <stdint.h> 
contains the compiler-specific portions rather than the library-specific 
portions.

	-hpa

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2007-02-24 23:41 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2007-02-23  3:43 [PATCH] Allow kernel to build on Cygwin Deepak Saxena
2007-02-23 20:37 ` Matthieu CASTET
2007-02-23 23:17   ` Deepak Saxena
2007-02-24  0:17 ` H. Peter Anvin
2007-02-24 22:55   ` Jan Engelhardt
2007-02-24 23:40     ` H. Peter Anvin
2007-02-24  0:18 ` H. Peter Anvin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).